Excel 带有动态行参数的 OFFSET 函数
Excel OFFSET function with a dynamic row argument
抱歉我是新手。
所以...我有这个 table:
我想收集一些数据到不同的 sheet:
例如,我收集 D14,公式为:=OFFSET(Test_Sheet!$A$18,2,9,1,1)。
问题是:当我将公式拖到第 15 行时,值保持不变,因为参数“行”是静态的。我怎样才能用每行增加 1 个单位的“行”参数来拖动这个公式?预期结果应为 =OFFSET(Test_Sheet!$A$18,3,9,1,1).
谢谢大家
您的解决方案是创建我所谓的“锚细胞”作为参考,并计算您与这些锚点的偏移量。在您的示例中,您的第一个锚点是 Test_Sheet$A18
。为了方便起见,我通常会为该单元格创建一个命名范围。
在我这里的示例中,您可以看到单元格 A4
被命名为 DataAnchor
。
您的下一个锚点是公式 中相对于锚点单元格 的第一个单元格。 (很明显,如果你移动你的相对“常量”周围的东西会改变。所以请注意。)
在这个例子中,我第一个带有公式的单元格是 F8
.
要获得锚行和我的公式行之间的相对行偏移量,您可以计算:
ROW()-ROW(DataAnchor)-2
也就是当前行号减去anchor的行号减二
那么F8
中的公式复制下来就变成了
=OFFSET(DataAnchor,ROW()-ROW(DataAnchor)-2,2,1,1)
抱歉我是新手。
所以...我有这个 table:
我想收集一些数据到不同的 sheet:
例如,我收集 D14,公式为:=OFFSET(Test_Sheet!$A$18,2,9,1,1)。
问题是:当我将公式拖到第 15 行时,值保持不变,因为参数“行”是静态的。我怎样才能用每行增加 1 个单位的“行”参数来拖动这个公式?预期结果应为 =OFFSET(Test_Sheet!$A$18,3,9,1,1).
谢谢大家
您的解决方案是创建我所谓的“锚细胞”作为参考,并计算您与这些锚点的偏移量。在您的示例中,您的第一个锚点是 Test_Sheet$A18
。为了方便起见,我通常会为该单元格创建一个命名范围。
在我这里的示例中,您可以看到单元格 A4
被命名为 DataAnchor
。
您的下一个锚点是公式 中相对于锚点单元格 的第一个单元格。 (很明显,如果你移动你的相对“常量”周围的东西会改变。所以请注意。)
在这个例子中,我第一个带有公式的单元格是 F8
.
要获得锚行和我的公式行之间的相对行偏移量,您可以计算:
ROW()-ROW(DataAnchor)-2
也就是当前行号减去anchor的行号减二
那么F8
中的公式复制下来就变成了
=OFFSET(DataAnchor,ROW()-ROW(DataAnchor)-2,2,1,1)