这是我的公式:
=IF(ActualsThrough<F$5,SUMIF('209Budget'!$F:$F,'209ActBud'!$C7,'209Budget'!I:I),-IFERROR(OFFSET('Month TB'!$D$1,MATCH($C7&+"-"&+$C$2,'Month TB'!$B:$B,0)-1,MATCH(F$5,'Month TB'!$D$1:$O$1,0)-1),0))
我希望公式对 209Budget 和 209ActBud 使用间接动态引用。
这个想法是,我可以在引用单元格中输入“209”,然后所有公式都会更新。当我将工作表复制到新选项卡时,我可以将引用单元格更改为“210”,然后所有公式都会更新。
我遇到的问题是尝试使范围具有相对性。间接公式要求范围引用位于“”。这导致公式是静态的而不是动态的,这使我无法跨行和列复制公式。
答案1
假设单元格 209 位于当前工作表的 A1 中,则可以像这样使用间接构建引用:
=Indirect("'"&A1&"Budget'!$F:$F")
如果您的工作表名称没有空格,则无需将其括在单引号中,因此,
=Indirect(A1&"Budget!$F:$F")
应用于引用表 209 的范围,整个包将如下所示
=IF(ActualsThrough<F$5,SUMIF(indirect(A1&"Budget!$F:$F"),indirect(A1&"ActBud!$C7"),indirect(A1&"Budget!I:I")),-IFERROR(OFFSET('Month TB'!$D$1,MATCH($C7&+"-"&+$C$2,'Month TB'!$B:$B,0)-1,MATCH(F$5,'Month TB'!$D$1:$O$1,0)-1),0))
评论后编辑:如果您需要间接中的列引用是相对的,因此当公式复制到右侧时它会更新,则可以使用 Cell() 函数。
代替
...indirect(A1&"Budget!$F:$F")...
使用
...indirect(A1&"Budget!"&cell("address",F:F))...