如何自动汇总不同工作表中对应保龄选手的积分至汇总表单元格
自动汇总保龄球队选手积分的解决方案
假设你的SUMMARY汇总表中,A列(比如A2:A8)已经列出了所有7位选手的姓名(Bob、John、Rob、Steve、Mike、Jim、Rick),可以用以下公式实现自动汇总:
方案1:通用Excel版本适用(兼容旧版)
在汇总表B2单元格输入公式,然后下拉填充到B8:
=SUM(SUMIF(INDIRECT("Week"&ROW($1:$30)&"!A35:A38"),A2,INDIRECT("Week"&ROW($1:$30)&"!F35:F38")))
- 旧版Excel(非动态数组版本)输入后需要按 Ctrl+Shift+Enter 完成数组公式输入;
- 新版Excel(365/2021及以后)直接回车即可。
原理说明
INDIRECT("Week"&ROW($1:$30)&"!A35:A38")自动生成Week1到Week30每个工作表的A35:A38区域引用;SUMIF在每个周表中匹配当前单元格(A2)的选手姓名,返回对应F列的积分;- 外层
SUM将所有周表中该选手的积分累加求和。
方案2:无需数组输入的简化版
如果不想用数组输入,可改用SUMPRODUCT函数,在B2输入后直接回车并下拉:
=SUMPRODUCT(SUMIF(INDIRECT("Week"&ROW($1:$30)&"!A35:A38"),A2,INDIRECT("Week"&ROW($1:$30)&"!F35:F38")))
方案3:Excel 365/2021动态数组一键生成
利用动态数组特性,只需在B2输入一次公式,自动填充所有选手的积分:
=BYROW(A2:A8,LAMBDA(name,SUM(SUMIF(INDIRECT("Week"&SEQUENCE(30)&"!A35:A38"),name,INDIRECT("Week"&SEQUENCE(30)&"!F35:F38")))))
注意事项
- 确保所有周表命名严格为
Week1到Week30,无拼写错误或额外空格; - 选手姓名需在汇总表和周表中保持完全一致(包括大小写),否则会匹配失败;
INDIRECT是易失性函数,工作表变动时会重新计算,30个表的规模下不会影响性能。
内容的提问来源于stack exchange,提问作者Bob Krembs
相关产品推荐
相关产品推荐

