对多个工作表中的单个单元格求和

对多个工作表中的单个单元格求和

我可以轻松地对给定的单元格求和,比如说B9,跨多个工作表,例如:

=SUM(Sheet7:Sheet11!B9)

这相当于:

=Sheet7!B9+Sheet8!B9+Sheet9!B9+Sheet10!B9+Sheet11!B9

这是细胞的总和B9在所有工作表中工作表7通过表 11

我需要创建类似第一个公式的东西,但单元格中包含工作表名称。因此,如果A1包含:

工作表7

和细胞A2包含:

表 11

在此处输入图片描述

然后公式A3将使用这些单元格。到目前为止,我尝试过的是:

=SUM(A1 & ":" & A2 & "!" & B9)

=SUM(INDIRECT(A1 & ":" & A2 & "!" & B9))

这些都不起作用。

我可以轻松创建一个 VBA 函数来执行此操作,但工作簿必须能够在无宏的环境中运行。

答案1

根据@Dave的回答和您的评论,But I don't know in advance what the contents of cells A1 and A2 will be.......so I don't know how many terms to include.我建议添加一列以包含每张工作表的总数并对该列求和。假设您在列中输入工作表名称A,然后在列中输入B

=IF(ISNUMBER(INDIRECT(A2&"!B9")),INDIRECT(A2&"!B9"),0) 

然后您就可以=Sum(B:B)得到总数了。

请注意,我添加了IFandISNUMBER函数以避免#REF!A 列缺少工作表名称时出现这种情况。您可能希望改用ISBLANK,如下所示

=IF(ISBLANK(A2),0,INDIRECT(A2&"!B9"))

如果您确实希望在 A 列包含错误的工作表名称时收到错误消息。

另一个提示:如果您将工作表命名为 Sheet1、Sheet2,则可以轻松拖动以填充 A 列中的工作表

答案2

这是一种手动方法,可能并不理想

=INDIRECT(A1&"!A1")+INDIRECT(A2&"!A1")

或者

=SUM(INDIRECT(A1&"!A1"),INDIRECT(A2&"!A1"))

我的工作表看起来像

     A         B         C
1    sheet2
2    sheet3
3

Sheet2 中的 A1 有值,Sheet3 中的 A1 也有值

就你的情况而言,你需要

   =SUM(INDIRECT(A1&"!A1"),INDIRECT(A2&"!A1"),INDIRECT(A3&"!A1"),INDIRECT(A4&"!A1")...etc)

相关内容