Excel中VLOOKUP匹配多结果时,如何从矩阵返回最大值?
Excel查询指定项目对应区域的最大值
适用场景
你的数据表如下:
| ITEM | WEST | EAST |
|---|---|---|
| ALPHA | 15 | 10 |
| ALPHA | 10 | 16 |
需要查询ALPHA对应WEST的最大值15、EAST的最大值16,且不能通过排序改变数据顺序。
具体公式方案
方案1:MAX+IF数组公式(兼容所有Excel版本)
查询ALPHA的WEST最大值:
=MAX(IF($A$2:$A$3="ALPHA",$B$2:$B$3))
查询ALPHA的EAST最大值:
=MAX(IF($A$2:$A$3="ALPHA",$C$2:$C$3))
旧版Excel输入完成后,需按
Ctrl+Shift+Enter触发数组计算;新版Excel直接回车即可自动识别。
方案2:MAXIFS+动态列匹配(Excel 2019及以上版本)
这个方案可以延续你原来的思路,通过MATCH动态指定要查询的列,不用手动修改列号:
查询WEST最大值:
=MAXIFS(INDEX($B$2:$C$3,,MATCH("WEST",$B$1:$C$1,0)),$A$2:$A$3,"ALPHA")
查询EAST最大值只需把公式里的"WEST"替换成"EAST":
=MAXIFS(INDEX($B$2:$C$3,,MATCH("EAST",$B$1:$C$1,0)),$A$2:$A$3,"ALPHA")
方案3:XLOOKUP+MAX(Office 365/2021版本)
如果用的是最新版Excel,也可以用这个更简洁的写法:
查询WEST最大值:
=MAX(XLOOKUP("ALPHA",$A$2:$A$3,$B$2:$B$3))
查询EAST最大值替换对应列即可:
=MAX(XLOOKUP("ALPHA",$A$2:$A$3,$C$2:$C$3))
内容的提问来源于stack exchange,提问作者JCS
相关产品推荐
相关产品推荐

