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

Excel公式问题:查找最后出现最早的名称时返回#N/A

Excel公式解决:查找最后出现位置最早的重复/唯一名称

问题分析

你原公式的问题在于仅筛选了仅出现一次的名称(COUNTIF($C$2:C50, $C$2:C50)=1),完全忽略了重复名称的最后出现行号。当区域里存在重复名称时,MIN函数找不到符合条件的行号,自然返回#N/A。

你的核心需求是:获取C2:C50中每个名称的最后出现行号,再找出这些行号里最小的那个对应的名称。

解决方案

方案1:适用于Excel 365/2021(支持动态数组)

直接在C51输入以下公式(无需按组合键):

=INDEX(C2:C50,XMATCH(MIN(XLOOKUP(C2:C50,C2:C50,ROW(C2:C50),,,-1)),ROW(C2:C50)))

公式拆解:

  • XLOOKUP(C2:C50,C2:C50,ROW(C2:C50),,,-1):对每个单元格,返回对应名称最后一次出现的行号
  • MIN(...):从所有名称的最后出现行号中,找出最小的那个(即最后出现位置最早的)
  • XMATCH(...,ROW(C2:C50)):定位这个最小行号在C2:C50区域中的位置
  • INDEX(...):返回对应位置的名称

方案2:适用于旧版Excel(不支持动态数组)

在C51输入以下公式后,按Ctrl+Shift+Enter执行数组运算:

=INDEX(C2:C50,MATCH(MIN(MAX(ROW(C2:C50)*(C2:C50=TRANSPOSE(C2:C50)))),ROW(C2:C50),0))

公式拆解:

  • C2:C50=TRANSPOSE(C2:C50):生成一个矩阵,标记出相同名称的位置
  • ROW(C2:C50)*(...):将行号与矩阵相乘,相同名称的位置保留对应行号,其他为0
  • MAX(...):对每个名称,提取其最大行号(即最后出现行号)
  • MIN(...):找出所有最后出现行号里的最小值
  • MATCH(...)+INDEX(...):定位并返回对应名称

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:28:21