Excel:从固定列获取相对行的值的最佳方法是什么?

时间:2009-12-15 23:43:47

标签: excel worksheet-function

以下公式将始终返回下一行的第4列(D)的值。

=INDIRECT("R[1]C[" & 4-COLUMN() & "]",FALSE)

有没有更好的方法来获得相同的结果?

4 个答案:

答案 0 :(得分:2)

在列号或行号前加上“$”字符会在复制和粘贴时将其锁定。

例如:

$C$17

答案 1 :(得分:2)

类似但不那么冗长且易于阅读(恕我直言),是A1的寻址方式:

=INDIRECT("$D" & ROW()+1)

答案 2 :(得分:2)

更好地取决于你的意思: - )

如果你的意思是更短/更简单和A1风格,那么shoover的答案很好:

=INDIRECT("$D"&ROW()+1)

如果您更喜欢R1C1风格(更容易阅读恕我直言;-)),那么更简单/更简单/更快的解决方案是:

=INDIRECT("R[1]C4",)

但是,如果你是最快速的解决方案,或者只是喜欢非易失性的解决方案,那么命名方程式就可以了:

  • 定义名称,例如Col4Down1,并将其值设置为:

    =INDEX(!$D:$D,ROW()+1)

  • 将以下公式放在单元格中以获得所需的结果:

    =Col4Down1

这是因为在命名公式中使用爆炸操作符!时有一点鲜为人知的怪癖。如果您未指定工作表名称,则!$D:$D始终引用第四列,而不管列删除/插入。把它想象成绝对绝对地址。

最后,Lance Roberts的答案虽然是非易失性的,却有一些问题。正如他所提到的,它只会在某些预定的行中起作用。其次,从A-D或上面的任何行插入/删除任何列都会破坏它。修改它以修复这些导致以下内容(如果输入到单元格B2中):

=INDEX(B:B:2:2,ROW()+1,4)

或者如果您更喜欢R1C1样式并且已将电子表格设置为使用此样式:

=INDEX(R:C,ROW()+1,4)

答案 3 :(得分:1)

如果你知道范围:

,这将有效
=INDEX($A$1:$E$4, ROW()+1, 4)