使用INDEX&MATCH函数匹配时出现重复值问题求助
解决Excel中重复值匹配时返回重复名称的问题
当使用MATCH($B$3:$F$3,C7,0)时,函数默认返回第一个匹配到目标值的单元格位置。所以当数字"2"在B3:F3中出现多次时,所有匹配"2"的位置都会指向第一个"2"对应的名称"B",导致重复结果。
方法1:改进INDEX/MATCH组合(兼容所有Excel版本)
在B7单元格输入以下公式,然后下拉填充到B11:
=INDEX($B$1:$F$1,SMALL(IF($B$3:$F$3=C7,COLUMN($B$3:$F$3)-COLUMN($B$3)+1),COUNTIF($C$7:C7,C7)))
注意:Excel 2019及更早版本输入公式后,需按 Ctrl+Shift+Enter 触发数组计算;Excel 365/2021版本直接回车即可。
公式解释:
IF($B$3:$F$3=C7,COLUMN($B$3:$F$3)-COLUMN($B$3)+1):找出所有等于C7的数字所在的列序号(比如两个"2"对应的列序号是2和4)。COUNTIF($C$7:C7,C7):统计当前行及以上有多少个和C7相同的数字(比如C8是第二个"2",这个值就是2)。SMALL(...,COUNTIF(...)):从IF返回的列序号列表中,取出第n个序号(n是当前重复项的次数)。INDEX($B$1:$F$1,...):根据取出的列序号,返回对应的名称。
方法2:使用XLOOKUP(仅Excel 365/2021及以后版本)
如果你的Excel支持动态数组函数,可以用更简洁的写法:
在B7单元格输入以下公式,下拉填充:
=INDEX($B$1:$F$1,AGGREGATE(15,6,COLUMN($B$3:$F$3)-COLUMN($B$3)+1/($B$3:$F$3=C7),COUNTIF($C$7:C7,C7)))
额外提醒
你原有的SORT公式存在语法错误,正确写法应为:
=SORT(TRANSPOSE(B3:F3),1,FALSE)
内容的提问来源于stack exchange,提问作者May Ling
相关产品推荐
相关产品推荐

