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

基于分组与最大值的多列排序问题求助

按分组提取对应最大值的A列数据解决方案

你这需求我经常碰到,不用手动排序完全能搞定,给你两个适配不同Excel版本的实用方法:

方法1:XLOOKUP + MAXIFS(Excel 365/2021及以上版本适用)

这个组合最省心,直接一步到位。假设你的数据在A:C列,想在D列显示每行所属分组的目标A值,就在D2单元格输入:

=XLOOKUP(MAXIFS(C:C, B:B, B2), C:C, A:A, "", 0)

下拉填充就行。

  • MAXIFS(C:C, B:B, B2):先算出当前行B列分组对应的C列最大值
  • XLOOKUP:根据这个最大值,在C列找到匹配项,返回对应的A列内容

要是只想提取每个唯一分组的结果,先在E列用=UNIQUE(B:B)得到所有不重复的分组,然后在F2输入:

=XLOOKUP(MAXIFS(C:C, B:B, E2), C:C, A:A, "", 0)

下拉就能拿到每个分组对应的目标A值。

方法2:INDEX + MATCH组合(全Excel版本兼容)

如果你的Excel版本比较旧,不支持XLOOKUP,用经典的INDEX+MATCH组合也能解决。同样在D2输入:

=INDEX(A:A, MATCH(MAXIFS(C:C, B:B, B2), C:C, 0))

下拉填充即可。

  • 原理和上面类似:先用MAXIFS找到当前分组的C列最大值,再用MATCH定位这个值在C列的位置,最后用INDEX返回A列对应位置的内容

特殊情况处理

如果同一分组里C列有多个相同的最大值,上面的公式会返回第一个出现的A列值。要是需要返回最后一个出现的,用这个数组公式(Excel 365直接回车,旧版按Ctrl+Shift+Enter触发计算):

=INDEX(A:A, MAX(IF((B:B=B2)*(C:C=MAXIFS(C:C,B:B,B2)),ROW(C:C))))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:18:04