次の式は、常に次の行の 4 列目 (D) の値を返します。
=INDIRECT("R[1]C[" & 4-COLUMN() & "]",FALSE)
同じ結果を達成するためのより良い方法はありますか?
次の式は、常に次の行の 4 列目 (D) の値を返します。
=INDIRECT("R[1]C[" & 4-COLUMN() & "]",FALSE)
同じ結果を達成するためのより良い方法はありますか?
列文字または行番号の前に「$」文字を付けると、コピーして貼り付けるときにロックされます。
例えば:
$ C $ 17
あなたが何を意味するかによります:-)
より短く/よりシンプルでA1スタイルを意味する場合、シューバーの答えは問題ありません:
=INDIRECT("$D"&ROW()+1)
R1C1 スタイル (IMHO を読みやすい ;-) ) を好む場合は、さらに短く/シンプル/高速なソリューションは次のとおりです。
=INDIRECT("R[1]C4",)
ただし、最速のソリューションを求めている場合、または単に不揮発性ソリューションを好む場合は、名前付き式が最適です。
Name を定義し、Col4Down1
その値を次のように設定します。
=INDEX(!$D:$D,ROW()+1)
次の数式をセルに配置して、目的の結果を取得します。
=Col4Down1
これ!
は、名前付き数式で bang 演算子を使用するときの、あまり知られていない癖のために機能します。シート名を指定しない場合、列の削除/挿入に関係なく!$D:$D
、常に 4 番目の列を参照します。絶対 - 絶対アドレッシングと考えてください。
最後に、Lance Roberts の回答は、揮発性ではありませんが、いくつかの問題があります。彼が言及しているように、それは特定の事前定義された行でのみ機能します。第 2 に、AD からの列の挿入/削除、または上の行の挿入/削除は、それを壊します。これらを修正するために修正すると、次のようになります (セル B2 に入力した場合)。
=INDEX(B:B:2:2,ROW()+1,4)
または、R1C1 スタイルを好み、このスタイルを使用するようにスプレッドシートを設定している場合:
=INDEX(R:C,ROW()+1,4)
似ていますが、言葉が少なく読みやすい (IMHO) のは、A1 スタイルのアドレス指定です。
=INDIRECT("$D" & ROW()+1)
範囲がわかっている場合、これは機能します。
=INDEX($A$1:$E$4, ROW()+1, 4)