能否使用Excel新增动态函数单公式生成交叉汇总表?
Excel单公式实现两列交叉汇总方案
完全可以实现,仅需要你使用的是Excel 365、Excel 2021及以上支持动态数组的版本即可,无需辅助列或多公式配合。
以下是两种常用场景的实现方案,默认示例的数据源规则为:A列是行维度字段、B列是列维度字段、C列是待汇总的数值字段,数据范围为A2:C100,你可以根据自己的实际数据调整对应区域。
场景1:交叉位置求和
最简方案(适配最新版Excel 365)
用微软2022年推送的专属交叉汇总函数PIVOTBY,仅需要一行公式:
=PIVOTBY(A2:A100,B2:B100,C2:C100,SUM,,,"总计")
参数说明:
- 第1参数
A2:A100:行维度数据源,函数会自动提取唯一值作为行标题 - 第2参数
B2:B100:列维度数据源,函数会自动提取唯一值作为列标题 - 第3参数
C2:C100:待汇总的数值列 - 第4参数
SUM:指定汇总规则为求和 - 最后一个可选参数
"总计":开启行、列的总计栏,不需要可以直接删除该参数
兼容方案(适配所有支持动态数组的Excel版本)
如果你用的是早期还未支持PIVOTBY的365版本或者Excel 2021,可以用LET+UNIQUE+MAKEARRAY组合实现:
=LET( 行唯一,UNIQUE(A2:A100), 列唯一,TOROW(UNIQUE(B2:B100)), 汇总值,MAKEARRAY(ROWS(行唯一),COLUMNS(列唯一),LAMBDA(r,c,SUMIFS(C2:C100,A2:A100,INDEX(行唯一,r),B2:B100,INDEX(列唯一,c)))), VSTACK(HSTACK("维度匹配",列唯一),HSTACK(行唯一,汇总值)) )
公式会自动拼接行标题、列标题和所有交叉汇总结果,回车后直接溢出整张交叉表。
场景2:交叉位置计数
如果仅需要统计两个维度的组合出现次数,不需要第三列数值,只需要修改汇总规则即可:
PIVOTBY版本把第4参数换成COUNTA,示例:
=PIVOTBY(A2:A100,B2:B100,A2:A100,COUNTA,,,"总计")
- 兼容版本把公式里的
SUMIFS替换为COUNTIFS,同时删除SUMIFS里的C列参数即可。
注意事项
- 所有动态数组公式直接回车即可生效,不需要按传统数组公式的
Ctrl+Shift+Enter组合键 - 如果返回
#SPILL!错误,检查公式输出的空白范围是否被其他单元格内容遮挡,清理遮挡内容即可正常展示 - 可自定义汇总规则,比如求平均值、最大值,仅需要把对应求和函数替换为
AVERAGE、MAX即可
内容的提问来源于stack exchange,提问作者dbb
相关产品推荐
相关产品推荐

