请考虑此公式,该公式将工作表范围中的单元格A6
的内容汇总为RbStart
到RbEnd
。
=SUM(RbStart:RbEnd!A6)
是否有办法让A6
动态,因为它从当前单元格的行中获取行号?问题是我的第一张工作表是合并动态数量的其他工作表的工作表,位于RbStart
和RbEnd
之间(RbStart
和RbEnd
只是帮助工作表能够包括动态数量的工作表。)
第一张纸上的行是动态的。这没关系,因为Excel会在您添加其他行时自动更新单元格引用。问题在于,由于技术原因,在行生成期间,我们之间有空白行,之后将其删除。但是当你这样做时,Excel不会更新公式,因此它与它所总结的动态图纸不同步。
您可以按如下方式模拟:
A6
。A7
,A8
,A9
,A10
等。A10
。由于在动态工作表上删除了相同的空白行,因此它现在引用了错误的行。如果我能以某种方式改变SUM公式,使得当前单元格所在的行取代A6
,问题就会得到解决。
我希望我有意义。很高兴澄清。
答案 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。