VBA实现:按指定ERGO TYPE分组获取SEQUENCE的最大值
解决方案:Excel按指定ERGO TYPE获取SEQUENCE最大值

针对你需要按ERGO TYPE分组求对应SEQUENCE最大值的需求,以下是几种无需循环的实现方案,完全匹配类似SQL GROUP BY + WHERE 的逻辑:
1. MAXIFS函数(Excel 2019及以上版本首选)
这是最直接的方法,专门用于多条件最大值查询:
假设ERGO TYPE列位于B列,SEQUENCE列位于D列,待查询的ERGO TYPE参数放在单元格F2,输入公式:
=MAXIFS(D:D, B:B, F2)
回车后即可得到对应分组的SEQUENCE最大值,比如输入'E04'时返回2,输入'E07'时返回1。
2. 数组公式(兼容旧版Excel)
如果你的Excel版本不支持MAXIFS,用数组公式替代:
同样假设ERGO TYPE在B列,SEQUENCE在D列,参数在F2,输入公式后按Ctrl+Shift+Enter确认(旧版Excel),新版Excel直接回车即可:
=MAX(IF(B:B=F2, D:D))
公式会先筛选出匹配ERGO TYPE的SEQUENCE值,再取其中的最大值。
3. 数据透视表(批量查看所有分组最大值)
如果需要一次性获取所有ERGO TYPE对应的最大值,数据透视表效率更高:
- 选中整个数据表区域,点击「插入」选项卡的「数据透视表」
- 在字段面板中,将「ERGO TYPE」拖至「行」区域,「SEQUENCE」拖至「值」区域
- 右键点击值区域的「SEQUENCE」字段,选择「值字段设置」,把汇总方式改为「最大值」
生成的透视表会自动列出每个ERGO TYPE的SEQUENCE最大值,数据更新时右键刷新即可同步。
4. Power Query(适合大数据量或自动化更新)
若数据量较大或需要后续自动化处理,Power Query是更灵活的选择:
- 选中数据表,点击「数据」选项卡的「从表格/区域」(Excel 2016及以上版本)
- 在Power Query编辑器中,选中「ERGO TYPE」列,点击「转换」选项卡的「分组依据」
- 分组规则设置:分组依据选「ERGO TYPE」,新列名设为「MaxSequence」,操作选「最大值」,列选「SEQUENCE」
- 点击「确定」后,关闭并上载数据到Excel,得到所有分组的最大值结果;后续数据更新时右键刷新即可。
内容的提问来源于stack exchange,提问作者botakelymg
相关产品推荐
相关产品推荐

