如何阻止 excel 更改单元格内的公式?

How to stop excel from changing formulas within cells?

我有这个公式 =IFERROR(VLOOKUP("Actual/Estimated Ship Units Forecast",'WD ALPS'!$A:$K,MATCH(Date1,'WD ALPS'!$A1:$K1,0),FALSE),"") 每次我 运行 一个宏来重新拉取这个公式中引用的数据时, excel 将范围改变一个。 (这打乱了我所有的计算。) 所以我从 MATCH(Date1,'WD ALPS'!$A1:$K1,0)MATCH(Date1,'WD ALPS'!$A0:$K0,0) 没有原因。无论数据发生什么变化,我都希望它保持不变 sheet。

一种可能是使用 OFFSET。这是一个不稳定的函数,可能会导致响应时间问题,但在小范围内,通常不是问题。

您可以将 OFFSET 锁定到一个不会被您 运行 的宏更改的锚单元格。在这种情况下,我假设 A1 不受影响。您可以将公式更改为:

MATCH(Date1,OFFSET('WD ALPS'!$A,650,0):OFFSET('WD ALPS'!$A,650,10),0)

另一种不会不稳定且不依赖于锚点的方法是以相同的方式使用 INDEX:

MATCH(Date1,INDEX('WD ALPS'!:48576,651,1):INDEX('WD ALPS'!:48576,651,11),0)

这会选择整个 sheet,然后使用绝对的固定索引裁剪出您想要的部分。缺点是它评估整个 sheet - 我不确定哪个 运行 更快。