如何通过单元格引用的表名跨工作表求和表列值?
解决方法
方法1:修正INDIRECT的完整引用格式
你的公式失败的核心原因是没有明确指定工作表与表的层级关系——因为工作表名和内部表名都是Dally/Morose,Excel需要明确的路径才能定位到目标列。
使用以下公式(填充到Total Cost列对应单元格):
=SUM(INDIRECT("'"&A2&"'!"&A2&"[Cost]"))
- 细节说明:
"'"&A2&"'!":构建工作表的引用前缀(单引号用于兼容带空格的工作表名,无空格时可省略,但保留写法更通用)A2&"[Cost]":拼接表名与目标列的结构化引用- 整体组合成
'Dally'!Dally[Cost]这类完整路径,INDIRECT就能正确解析为目标表的Cost列
方法2:用Excel 365/2021动态函数简化(可选)
如果你的Excel版本支持动态数组,可结合LET函数让公式逻辑更清晰:
=LET( sheetName,A2, tableName,A2, SUM(INDIRECT("'"&sheetName&"'!"&tableName&"[Cost]")) )
方法3:避开INDIRECT(定义名称实现)
如果INDIRECT仍有兼容问题,可通过定义名称实现动态引用:
- 点击「公式」选项卡 → 「定义名称」,名称设为
DynamicCost,引用位置输入:
(注意替换=INDIRECT("'"&Sheet1!$A2&"'!"&Sheet1!$A2&"[Cost]")Sheet1为你的主工作表名称) - 在Total Cost列输入
=SUM(DynamicCost),即可自动匹配对应行的表数据
内容的提问来源于stack exchange,提问作者plast1cd0nk3y
相关产品推荐
相关产品推荐

