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

编程语言 2026-07-08

工作表 1

工作表 2

因此,在顶部,我有一些单元格,公式很简单 =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

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章