1

次の式は、常に次の行の 4 列目 (D) の値を返します。

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

同じ結果を達成するためのより良い方法はありますか?

4

4 に答える 4

2

列文字または行番号の前に「$」文字を付けると、コピーして貼り付けるときにロックされます。

例えば:

$ C $ 17
于 2009-12-15T23:56:32.763 に答える
2

あなたが何を意味するかによります:-)

より短く/よりシンプルで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)

于 2013-01-19T01:59:48.690 に答える
2

似ていますが、言葉が少なく読みやすい (IMHO) のは、A1 スタイルのアドレス指定です。

=INDIRECT("$D" & ROW()+1)
于 2009-12-16T00:01:27.530 に答える
1

範囲がわかっている場合、これは機能します。

=INDEX($A$1:$E$4, ROW()+1, 4)
于 2009-12-15T23:51:40.527 に答える