Excel使用Index Match匹配相同百分比时返回重复值如何解决?
你遇到的重复返回问题根源是MATCH函数的默认匹配逻辑:只要找到第一个符合条件的匹配项就会停止检索并返回其位置,因此存在多个相同百分比的匹配结果时,普通INDEX+MATCH组合永远只会返回第一个符合条件的对应值。
解决方案
方法1:添加辅助列(兼容所有Excel版本,操作最简单)
- 步骤1:在百分比列右侧新增辅助列,第一行数据单元格输入公式:
=B2&COUNTIF($B$2:B2,B2)(此处B列为你的百分比列,可根据实际表格调整列号),下拉填充整列。该公式会给相同的百分比追加序号,生成80%1、80%2这类唯一标识。 - 步骤2:修改原
INDEX+MATCH公式,MATCH的检索值改为[你的目标百分比单元格]&COUNTIF($D$2:D2,[你的目标百分比单元格])(D列为你存放返回结果的列,可自行调整),即可按顺序返回所有符合条件的对应值。
方法2:FILTER函数(适合Excel 365/2021及以上版本,无需辅助列)
直接输入公式:=FILTER([要返回值的列范围],[百分比列范围]=[目标百分比单元格]),按回车后所有符合条件的结果会自动溢出显示,无需手动下拉填充。
方法3:INDEX+SMALL+IF数组公式(兼容旧版本Excel,无需辅助列)
在要返回结果的单元格输入公式:=IFERROR(INDEX([要返回值的列范围],SMALL(IF([百分比列范围]=[目标百分比单元格],ROW([百分比列范围]),4^8),ROW(A1))),""),旧版本Excel需要按Ctrl+Shift+Enter三键结束数组公式输入,下拉填充即可依次返回所有符合条件的结果,超出匹配数量后会显示为空。
注意事项
如果你的百分比是公式计算得出的,建议匹配时统一保留小数位数避免浮点误差,比如将所有百分比值套入ROUND(值,4)再做匹配,避免因精度问题出现匹配遗漏。
内容的提问来源于stack exchange,提问作者user17392778
相关产品推荐
相关产品推荐

