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