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

如何用Office365 Excel数组公式去重并保留最后对应值?

Excel去重并保留对应列最后一组值的解决方案

问题说明

现有A1-B5区域数据如下:

A 1  //remove
A 2
B 3  //remove
B 2
C 1

需求:对A列去重,同时保留其他列中对应最后一组值,预期结果如下:

A 2
B 2
C 1

已尝试FILTER、UNIQUE和XLOOKUP组合,但未找到可行方法。

可行解决方案

方法一:UNIQUE+XLOOKUP+SORT+HSTACK组合公式

在空白单元格(如D1)输入以下公式,回车后即可得到完整结果:

=HSTACK(UNIQUE(A:A,FALSE,FALSE),XLOOKUP(UNIQUE(A:A,FALSE,FALSE),SORT(A:A,1,1,TRUE),SORT(B:B,1,1,TRUE),"",0,2))

公式拆解

  • UNIQUE(A:A,FALSE,FALSE):提取A列的唯一值,保留原始出现顺序
  • SORT(A:A,1,1,TRUE):对A列按升序排序,同时维持行维度的关联关系
  • SORT(B:B,1,1,TRUE):同步排序B列,确保与A列的行对应关系一致
  • XLOOKUP(..., "", 0, 2):查找每个唯一值在排序后A列中的最后一次出现位置,返回对应排序后B列的值
  • HSTACK:将提取的唯一值和对应最后值横向拼接成结果区域

方法二:兼容旧版Excel的拆分公式

如果你的Excel版本不支持HSTACK,可以分两步操作:

  1. 提取A列唯一值:在D1单元格输入=UNIQUE(A:A,FALSE,FALSE),回车后下拉填充
  2. 匹配对应最后值:在E1单元格输入=XLOOKUP(D1,SORT(A:A,1,1,TRUE),SORT(B:B,1,1,TRUE),"",0,2),回车后下拉填充

方法三:INDEX+MATCH数组公式

对于不支持XLOOKUP的更旧版本Excel,可使用以下数组公式:

=INDEX(B:B,MATCH(1,(A:A=D1)*(ROW(A:A)=MAX(ROW(A:A)*(A:A=D1))),0))

注:旧版Excel需按Ctrl+Shift+Enter触发数组计算,新版Excel直接回车即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:12:50