Excel:从固定列中获取相对行值的最佳方法是什么?
下面的公式将总是返回下一行的第四列(D)的值。
=INDIRECT("R[1]C[" & 4-COLUMN() & "]",FALSE)
有没有更好的方法来实现相同的结果?
类似的,但不那么罗嗦,更容易阅读(恕我直言),是A1的解决方式:
=INDIRECT("$D" & ROW()+1)
在字母或行号前放置一个“$”字符会在复制和粘贴时将其locking。
例如:
$ C $ 17
取决于你更好的意思:-)
如果你的意思是更短/更简单的A1风格,那么shoover的答案是好的:
=INDIRECT("$D"&ROW()+1)
如果你喜欢R1C1风格(更容易阅读恕我直言;-)),那么更短/更简单/更快的解决scheme是:
=INDIRECT("R[1]C4",)
但是,如果你是在最快的解决scheme之后,或者只是简单地select一个非易失性解决scheme,那么命名公式就是要走的路:
-
定义一个名称,如
Col4Down1
,并将其值设置为:=INDEX(!$D:$D,ROW()+1)
-
将下面的公式放在单元格中以获得所需的结果:
=Col4Down1
这是因为使用砰的操作符时有一点点已知的怪癖!
在一个命名的公式。 如果不指定工作表名称, !$D:$D
始终引用第四列, 而不考虑列删除/插入 。 把它看作绝对绝对寻址。
最后,兰斯·罗伯茨(Lance Roberts)的答案虽然是非易失性的,但也有一些问题。 正如他所提到的,它只能在某些预定的行中起作用。 其次,插入/删除AD中的任何列或上面的任何行将会破坏它。 修改它以修复这些导致以下(如果input到单元格B2中):
=INDEX(B:B:2:2,ROW()+1,4)
或者如果您偏好R1C1风格并将电子表格设置为使用此样式:
=INDEX(R:C,ROW()+1,4)
这将工作,如果你知道的范围:
=INDEX($A$1:$E$4, ROW()+1, 4)