所有工作表

时间:2015-10-08 16:50:08

标签: excel

我的工作簿中有超过20张。我正在尝试将月和年的所有值都计算在内。

这个公式我想弄清楚。从技术上讲,这是为了查找所有工作表并添加指定月份的总值,在本例中为1月。

= SUMPRODUCT( - (月(这里是'通配符'!B25:B48)= 1),'这里是通配符'!D25:D48)

= SUMPRODUCT( - (月份('通配符在这里'!$ B $ 25:$ B $ 48)= 1),'通配符在这里'!$ C $ 25:$ C $ 48)

我似乎无法完成这项工作。我收到了#REF错误。

2 个答案:

答案 0 :(得分:0)

理论上,这可以使用两个概念:数组公式和INDIRECT函数。一个假设的公式可能看起来像这样:

=SUM(INDIRECT("Sheet"&{1,2,3,4,5}&"!A1"))

在此示例中,INDIRECT函数用于键入每个工作表名称(假设您有Sheet1,sheet2,sheet3等)并从所有这些命名工作表中选取A1。但是,INDIRECT函数不允许以这种方式使用数组公式,无需另外一步(有关详细信息,请参阅下面的@XORLX评论):

=SUM(N(INDIRECT("Sheet"&{1,2,3,4,5}&"!A1")))

因为此处的工作表编号是硬编码的{1,2,3,4,5},您可以像输入任何其他编号一样输入此公式 - 这样,它就不是一个完整的“数组公式”。

替代方法:

最简单的方法是在摘要选项卡中为每个工作表添加一列,然后将所有这些列添加到一起。您可以通过编程方式执行此操作,因此它不会像您想象的那样痛苦(尽管它会占用大量空间)。

假设Sheet1是空白的,并且从第B行开始沿着第1行,你有每个标签的名称(我不能从你的问题中看出来,但让我们假设像“2010; 2011; 2012 ......”从A列开始,从第2行开始,您就有了要添加的月份。我还假设每个月都在每个标签的A列设置,并且该月的结果在列上每个标签的B。放在一起,B2中的公式和向下/向右拖动将是:

=VLOOKUP($A2,INDIRECT("'"&B$1&"'!A:B"),2,0)

这将从A列中选取月份名称,并使用INDIRECT函数检查要从中拉出的工作表。一旦它具有工作表名称,它就会添加“A:B”,这意味着它将使用VLOOKUP搜索A列。它为您提供第二列(B列)的值,并且需要完全匹配才能给出值。

答案 1 :(得分:0)