如何在SUM公式中动态引用Excel工作表名称?
解决Excel跨工作表动态求和问题
你遇到的问题本质是文本格式的工作表名无法直接被SUM函数识别,需要借助INDIRECT函数将文本转换为有效的单元格区域引用,以下是具体解决方法:
基础公式写法
假设C4单元格是周数(比如数字1对应W1),直接使用以下公式即可:
=SUM(INDIRECT("W"&C4&"!AW2:AW7"))
如果你的工作表名包含空格、特殊字符(比如中文),必须用单引号包裹工作表名,避免报错:
=SUM(INDIRECT("'"&"W"&C4&"'!AW2:AW7"))
公式解释
INDIRECT函数的核心作用是把文本字符串转换成Excel能识别的单元格/区域引用"W"&C4会根据C列的周数生成对应的工作表名(例如C4=5时,生成"W5")- 拼接
!AW2:AW7后得到完整的区域引用字符串,INDIRECT转换后交给SUM计算求和
常见问题排查
- 报错#REF!:检查C列周数是否在1-28范围内,或者工作表名是否拼写正确(比如有没有写成"Week1"而不是"W1")
- 报错#VALUE!:如果C列的周数是文本格式(比如单元格显示"1"但实际是文本),把公式里的
C4替换成VALUE(C4),强制转换为数值 - 求和结果为0:确认对应工作表的AW2:AW7区域确实有数值,没有被设置为文本格式
进阶简化(Excel 365/2021适用)
如果使用支持动态数组的Excel版本,用LET函数可以让公式更易读:
=LET( sheet_name, "W"&C4, target_range, INDIRECT(sheet_name&"!AW2:AW7"), SUM(target_range) )
内容的提问来源于stack exchange,提问作者LaravelNewbie
相关产品推荐
相关产品推荐

