跨表格的Excel SUM:根据当前单元格确定行

时间:2017-07-07 13:21:09

标签: excel-formula

请考虑此公式,该公式将工作表范围中的单元格A6的内容汇总为RbStartRbEnd

=SUM(RbStart:RbEnd!A6)

是否有办法让A6动态,因为它从当前单元格的行中获取行号?问题是我的第一张工作表是合并动态数量的其他工作表的工作表,位于RbStartRbEnd之间(RbStartRbEnd只是帮助工作表能够包括动态数量的工作表。)

第一张纸上的行是动态的。这没关系,因为Excel会在您添加其他行时自动更新单元格引用。问题在于,由于技术原因,在行生成期间,我们之间有空白行,之后将其删除。但是当你这样做时,Excel不会更新公式,因此它与它所总结的动态图纸不同步。

您可以按如下方式模拟:

  1. 将我的公式放入单元格A6
  2. 将其向下拖动以进行复制。请注意后续行中的内容如何变为A7A8A9A10等。
  3. 现在删除第9行。注意第9行中的公式如何引用A10
  4. 由于在动态工作表上删除了相同的空白行,因此它现在引用了错误的行。如果我能以某种方式改变SUM公式,使得当前单元格所在的行取代A6,问题就会得到解决。

    我希望我有意义。很高兴澄清。

1 个答案:

答案 0 :(得分:1)

我想到的第一件事是使用以下公式

=SUM(INDIRECT("'Sheet1:Sheet3'!A"&ROW()))

但后来我意识到INDIRECT在这里不起作用。

因此,你必须在某处列出所有表格的名称,并在公式中引用该列表。使用命名范围将是更好的选择。有关命名范围的详细信息,请参阅this link。然后,您可以根据需要在此列表中添加/删除工作表名称。之后,您可以使用以下公式

=SUMPRODUCT(SUMIF(INDIRECT("'" & NamedRange &"'!A" & ROW()),"<>0"))

或者您可以使用以下数组公式

=SUM(N(INDIRECT(NamedRange & "!A"&ROW())))

作为数组公式,按 Ctrl + Shift + Enter 提交。

您也可以直接使用单元格范围,而不是命名范围。假设您在Cell AA1:AA5中有工作表名称列表,则公式变为

SUMPRODUCT(SUMIF(INDIRECT("'" & $AA$1:$AA$5 &"'!A" & ROW()),"<>0"))

其他选择是使用VBA。