参考Excel中的最后一个工作表

问题描述 投票:2回答:1

我已经尝试了一些公式选项,但没有任何方法可以按照我的意愿进行。

我正在使用一个非常简单的SUM公式来汇总工作簿中的所有工作表。当前设置如下:

=SUM('1:10'!D3)

但是,我可能会添加更多工作表,希望它们包含在总数中。我尝试了在不同文章中找到的“ wshNameLast”或“ getlastwsname”的几个不同版本,但它们都给了我#REF错误。我可以在不使用VBA的情况下在这里输入公式吗?

感谢您的帮助!

excel excel-formula formula worksheet-function worksheet
1个回答
0
投票

有趣的问题。

@@@@@@@@@@@@@ BigBen对问题的评论>>>“最后有一个隐藏的空白工作表,只是引用它” >>>确实是实用且最简单的解决方案。

但是只是使其变得动态

参考..Jeffrey Weir's answerReturn array with Index Function

并由@Michal Rosa在对此问题的评论中建议How to generate list of Sheet Names

和@ashleedawg在对此问题的评论中建议的using indirect function to sum across multiple sheets

创建的工作簿包含5个工作表。

第一张纸是Sheet5,最后一张是Sheet1

除第一张纸外,每张纸在B5中都有值。

首先定义SheetNames数组=GET.WORKBOOK(1)的名称

enter image description here

然后,使用此公式很容易将所有工作表(包括第一张)的B5中的值求和

=SUMPRODUCT(SUM(INDIRECT("'"&SheetNames&"'!B5")))

但是如果必须在Sheet5的第一张图纸(B5)中输入公式以求和所有剩余图纸的B5,该怎么办。上面的公式返回循环误差。

可以在第一张图纸B5中输入以下公式,以汇总第二张到最后一张的所有图纸。注意,其为array formula。 (不带大括号的副本,然后用ctrl+shift+enter输入)

{=SUMPRODUCT(SUM(INDIRECT("'"&INDEX(SheetNames,N(IF((1),ROW(INDIRECT(2&":"&SHEETS())))))&"'!B5")))}

[INDIRECT(2&":"&SHEETS())以第二张纸开始数组,以最后一张纸结束(通过Sheets()函数计算的数字)]

因此,如果要从第3张纸开始数组/总和,请使用INDIRECT(3&":"&SHEETS())Ctrl+Shift+Enter

© www.soinside.com 2019 - 2024. All rights reserved.