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

使用Excel MATCH函数时,如何匹配多结果中对应最小值的行?

解决Excel中MATCH多匹配时返回对应Value最小项的行号问题

假设你的数据结构是:ID列在A3:A8,对应的数值列(Value)在B3:B8,需要匹配ID=1,返回所有匹配项中Value最小的那个在A3:A8数组内的位置(或工作表实际行号),以下是两种可行方案:

方法1:兼容所有Excel版本的数组公式

结合MATCH、MIN和IF函数实现,老版本Excel需要按Ctrl+Shift+Enter作为数组公式输入,新版本直接回车即可。

返回数组内的位置(比如A7对应数组第5行)

=MATCH(MIN(IF(A3:A8=1,B3:B8)),IF(A3:A8=1,B3:B8),0)
  • 逻辑拆解:
    1. IF(A3:A8=1,B3:B8):筛选出所有ID=1对应的Value值,形成仅包含符合条件数值的数组(不符合条件的为FALSE)
    2. MIN(...):从上述数组中提取最小的Value值
    3. 外层MATCH:在筛选后的Value数组中定位这个最小值的位置,即为原ID数组中符合条件且Value最小的项的位置

返回工作表实际行号(比如A7对应行号7)

=MATCH(MIN(IF(A3:A8=1,B3:B8)),IF(A3:A8=1,B3:B8),0)+ROW(A3)-1
  • 补充:通过ROW(A3)-1将数组内的相对位置转换为工作表的绝对行号

方法2:Excel 365/2021 动态数组简化公式

利用动态数组函数可以更简洁地实现需求:

方案A:用XLOOKUP+MINIFS

=XLOOKUP(MINIFS(B3:B8,A3:A8,1),B3:B8,ROW(A3:A8)-ROW(A3)+1,,-1)
  • 逻辑:
    1. MINIFS(B3:B8,A3:A8,1):直接计算ID=1对应的最小Value
    2. XLOOKUP定位该最小值在Value列的位置,返回对应的数组内相对位置(ROW(A3:A8)-ROW(A3)+1)

方案B:用INDEX+MATCH+FILTER

=MATCH(TRUE,FILTER(B3:B8,A3:A8=1)=MINIFS(B3:B8,A3:A8,1),0)
  • 逻辑:
    1. FILTER(B3:B8,A3:A8=1):筛选出所有ID=1的Value值
    2. 对比筛选结果与最小值,生成布尔数组
    3. MATCH找到第一个TRUE的位置,即为目标项在原数组中的位置

注意事项

  • 如果存在多个匹配项的Value相同且均为最小值,公式会返回第一个出现的项的位置
  • 确保ID列与Value列的行数完全对应,避免数据错位

内容的提问来源于stack exchange,提问作者Village.Idyot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 02:48:24