即使插入或删除单元格,单元格引用仍然保持不变,并且能够将公式复制到其他单元格


因此,在顶部,我有一些单元格,公式很简单 =IFERROR((TurboData!G3-TurboData!H3)/TurboData!H3,"")。
在底部(也就是'TurboData'工作表),只是一些值,然而每天都会在该工作表的E 与F 列之间插入一个新列。
我希望左边的工作表中的单元格忽略新插入的列,保持仿佛没有发生一样的引用。因此,公式不应该变成
=IFERROR((TurboData!H3 - TurboData!I3) / TurboData!I3, "")
通常会变成这样的。
我知道 INDIRECT 函数,但这似乎对我不起作用,因为我希望把公式复制粘贴到大量单元格上,然后保持它们的相对位置。例如,当我把公式复制粘贴到右边一个单元格、向下移动一个单元格时,它就会变成
=IFERROR((TurboData!H4 - TurboData!I4) / TurboData!I4, "")
编辑:
为澄清,我已复制了该工作表。你可以在这里查看:https://docs.google.com/spreadsheets/d/1XdNeLjwfMOokVfdhM_rugtz1gJRWgztnQhhVK3wX6Yw/edit?usp=sharing
问题出现在TurboPit AB3。这里,我要基于StockData选项卡中的数值计算百分比。然而在StockData选项卡中,每天晚上(通过AppScript自动)会在E 与F 列之间新增一列。
我现在看到这个话题因为不是一个软件开发相关的问题而被关闭。尽管在StackOverflow上搜索时,确实有成千上万的关于Google Sheets的问题……
解决方案
我想把公式复制/粘贴到大量单元格上,然后保持它们的相对位置
与其在各处复制粘贴公式,不如使用数组公式一次性填充整列,像这样:
=arrayformula(iferror(
if(indirect("Turbodata!E2:ZZZ"),
(indirect("Turbodata!E2:ZZZ") - indirect("Turbodata!F2:ZZZ")) / indirect("Turbodata!F2:ZZZ"),
)
))
该公式应放在单元格 AB3。它会自动生成一个相当高大、宽广的结果表。在添加新公式之前,先清空那些结果列。如果看到 #REF! 错误,说明你没有清空足够的单元格。
示例电子表格显示你在单独获取列标签。该公式也需要在单元格 AB2 中进行修改:
=indirect("TurboData!E1:1")
请查看bricks96提供的可编辑示例电子表格中的新标签页 doubleunary。