以下公式将始终返回下一行的第4列(D)的值。
=INDIRECT("R[1]C[" & 4-COLUMN() & "]",FALSE)
有没有更好的方法来获得相同的结果?
答案 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)