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

如何让Excel的MATCH函数跳过首个匹配项,实现重复分数的多编码匹配

解决相同分数下匹配多个对应编码的问题

核心问题分析

用INDEX+MATCH制作Top10分数榜单时,相同分数只会返回第一个匹配的编码,导致后续相同分数的单元格重复显示同一个编码,无法列出所有对应编码。

解决方案(分版本)

假设你的数据结构:

  • 编码列:A2:A100
  • 分数列:B2:B100
  • Top10分数列(已用LARGE生成):D2:D11
  • 需要匹配编码的目标列:E2:E11

方法1:数组公式(适配旧版Excel)

在E2单元格输入以下公式,按Ctrl+Shift+Enter完成数组输入,然后下拉填充:

=INDEX($A$2:$A$100,SMALL(IF($B$2:$B$100=D2,ROW($B$2:$B$100)-ROW($B$2)+1),COUNTIF($D$2:D2,D2)))

公式拆解:

  • IF($B$2:$B$100=D2,ROW($B$2:$B$100)-ROW($B$2)+1):筛选出所有等于当前分数的行号(相对于数据起始行的偏移量)
  • COUNTIF($D$2:D2,D2):统计当前分数在Top10列表中已出现的次数,动态指定要取第几个匹配项
  • SMALL:提取对应次数的行号,再用INDEX返回编码

方法2:AGGREGATE函数(无需数组输入)

如果觉得数组输入麻烦,用AGGREGATE函数可以直接输入后下拉:

=INDEX($A$2:$A$100,AGGREGATE(15,6,(ROW($B$2:$B$100)-ROW($B$2)+1)/($B$2:$B$100=D2),COUNTIF($D$2:D2,D2)))

公式拆解:

  • (ROW(...) - ROW($B$2)+1)/($B$2:$B$100=D2):不匹配的分数会返回错误值,匹配的返回对应行偏移量
  • AGGREGATE(15,6,...):用15调用SMALL功能,6忽略错误值,直接提取第N个有效行号
  • 后续逻辑同方法1,动态取对应次数的编码

方法3:Excel 365动态数组公式

如果你用的是Excel 365,直接用FILTER配合INDEX更简洁,一次性生成所有结果:

=INDEX(FILTER($A$2:$A$100,$B$2:$B$100=D2),SEQUENCE(COUNTIF($B$2:$B$100,D2)))

把这个公式放在对应Top分数的编码单元格,会自动溢出显示所有对应编码,不用下拉。

常见问题排查

你之前尝试SMALL+ROW没成功,大概率是这两个原因:

  • 没有用COUNTIF动态指定取第几个匹配项,始终取第一个
  • 旧版Excel中没按Ctrl+Shift+Enter触发数组计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:43:26