在 SUM‘between:sheets’公式中获取 Excel 工作表名称

在 SUM‘between:sheets’公式中获取 Excel 工作表名称

我有一系列不同名称的表格,例如

start, wc 17 Oct,  wc 24 Oct, wc 31 Oct

为了保持每张表中各种数字的累计总数,我在每张表中简单地使用以下内容,

=SUM('start:wc 24 Oct'!B1)

下一张是

=SUM('start:wc 31 Oct'!B1)

等等。我知道你可以用以下代码获取当前工作表名称=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)

但是有没有办法将两者结合起来

=SUM("'start:"&MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)&'!B1)

如果可能的话,使上述工作正确的语法是什么?

我曾尝试使用INDIRECT

=SUM(INDIRECT("'start:"&MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)&"'!B1", TRUE))

然而这总是引发#REF!错误。

答案1

一种方法是将所有工作表的列表添加到start工作表中。

这可以通过添加命名范围来动态完成。在名称管理器中使用以下公式:

=GET.WORKBOOK(1)

并给它命名(我用过test

在此处输入图片描述

然后在 Start!A1 中输入:

=IFERROR(MID(INDEX(test,ROW(1:1)),FIND("]",INDEX(test,ROW(1:1)))+1,999),"")

然后向下拖动/复制。这将按照工作表在选项卡中的显示顺序创建一个列表。

然后在所需单元格中使用此公式进行求和:

=SUMPRODUCT(SUMIF(INDIRECT("'" & INDEX('start'!A:A,MATCH("start",'start'!A:A,0)):INDEX('start'!A:A,MATCH(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),'start'!A:A,0)) & "'!B1"),"<>0"))

相关内容