如何查找各Option对应分组的最大V1值并返回整行数据?
按Option提取各组最大V1对应的完整行解决方案
假设你的数据结构如下(可根据实际区域调整):
- A列:组别(A/B/C)
- B列:Option(1-4)
- C~G列:对应V1到V5数据(即你示例中的2000、23等字段)
单个Option的查询公式
如果要单独提取某一个Option(比如Option 4)的最大V1对应行,可使用以下公式:
=XLOOKUP(MAX(FILTER(C:C,B:B="Option 4")),FILTER(C:C,B:B="Option 4"),FILTER(A:G,B:B="Option 4"))
公式拆解:
FILTER(C:C,B:B="Option 4"):筛选出所有属于Option 4的V1值MAX(...):计算这些V1值中的最大值XLOOKUP:通过最大值匹配到对应的完整数据行并返回
如果存在多个行的V1值同为最大值,上述公式会返回第一个匹配的行;若要返回所有符合条件的行,改用:
=FILTER(A:G,(B:B="Option 4")*(C:C=MAX(FILTER(C:C,B:B="Option 4"))))
批量生成所有Option的结果
若要一次性生成Option 1到Option 4的结果:
- 在空白列(比如I列)依次输入
Option 1、Option 2、Option 3、Option 4 - 在J1单元格输入公式,下拉填充到J4:
=XLOOKUP(MAX(FILTER(C:C,B:B=I1)),FILTER(C:C,B:B=I1),FILTER(A:G,B:B=I1))
替代方案(用INDEX+MATCH组合)
如果你习惯用INDEX和MATCH,也可以实现:
=INDEX(A:G,MATCH(MAXIFS(C:C,B:B="Option 4"),C:C,0),0)
注:MAXIFS(C:C,B:B="Option 4")直接计算Option 4对应的最大V1值,再通过MATCH找到该行的行号,最后用INDEX提取整行数据。
内容的提问来源于stack exchange,提问作者JZHENG8
相关产品推荐
相关产品推荐

