Excel 2019 Pro中如何获取指定分类最大值对应的ID?
解决Excel 2019 Pro中多分类同最大值时的ID匹配问题
问题场景
现有数据:
| ID | CAT | VAL |
|---|---|---|
| a | a | 4 |
| b | a | 94 |
| c | b | 5 |
| d | b | 94 |
| e | c | 2 |
| f | c | 3 |
需要获取CAT=b的VAL最大值(94)对应的ID(即d),但普通INDEX+MATCH会因CAT=a也存在94,返回第一个匹配的ID(b),以下是三种可行解决方法:
方法1:多条件数组公式匹配
使用INDEX结合多条件MATCH,同时限定分类和对应分类的最大值:
=INDEX(A:A,MATCH(1,(B:B="b")*(C:C=MAXIFS(C:C,B:B="b")),0))
注意:Excel 2019 Pro中需按Ctrl+Shift+Enter触发数组公式,公式会自动添加大括号
{},不要手动输入。
原理:(B:B="b")和(C:C=MAXIFS(C:C,B:B="b"))分别生成布尔数组,相乘后仅同时满足两个条件的位置为1,MATCH定位该位置后,INDEX返回对应ID。
方法2:XLOOKUP多条件匹配(部分Excel 2019版本支持)
如果你的Excel 2019已支持XLOOKUP函数,可直接用更简洁的多条件匹配:
=XLOOKUP(1,(B:B="b")*(C:C=MAXIFS(C:C,B:B="b")),A:A)
无需数组快捷键,XLOOKUP可直接识别多条件组合,返回符合要求的第一个匹配ID。
方法3:辅助列法(直观易操作)
- 在D列添加辅助列,D2单元格输入公式并下拉填充:
=IF(B2="b",C2,"") - 使用
INDEX+MATCH匹配辅助列的最大值对应的ID:=INDEX(A:A,MATCH(MAX(D:D),D:D,0))
辅助列仅保留
CAT=b的VAL值,其他为空,此时匹配最大值即可精准定位到目标ID。
内容的提问来源于stack exchange,提问作者philus
相关产品推荐
相关产品推荐

