You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用=FILTER函数仅对单列去重并保留最后出现的行

解决方案:用FILTER函数对B列去重并保留最后一行

原始数据

A列B列C列
azba
bcba
dwvo
gzba

期望结果

A列B列C列
bcba
dwvo
gzba

正确公式

在Excel 365或支持动态数组的版本中,使用以下公式:

=FILTER(A2:C5, ROW(A2:C5)=BYROW(B2:B5, LAMBDA(val, MAX(IF(B2:B5=val, ROW(B2:B5))))))

公式逻辑说明

  1. BYROW(B2:B5, LAMBDA(val, MAX(IF(B2:B5=val, ROW(B2:B5))))):遍历B列每个值,计算该值在B列中最后出现的行号
  2. ROW(A2:C5)=[上述结果]:生成布尔数组,标记哪些行是对应B列值的最后出现行
  3. FILTER(A2:C5, [布尔数组]):根据标记筛选出符合条件的整行数据

为什么之前的公式无效

  • =UNIQUE(B2:B5):仅返回B列去重后的值,无法关联A、C列的对应数据
  • =FILTER(A2:C5,UNIQUE(B2:B5)=B2:B5):UNIQUE返回的是去重后的列表,和原B列匹配时只会匹配到每个值的第一次出现,而非最后一次,因此无法得到期望结果

内容的提问来源于stack exchange,提问作者user21307686

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 10:45:06