Excel のオフセット関数が #VALUE! を返す。行関数と組み合わせるとエラーになる

Excel のオフセット関数が #VALUE! を返す。行関数と組み合わせるとエラーになる

次の Excel 関数がエラーを返すのはなぜですか? このエラーは、返される参照が 1 セルより大きい場合にのみ発生します。数式では、返される参照は 1 行の高さと 2 行の高さです。

    =OFFSET($A$2,ROW(G6),0,1,2) 

答え1

数式が返す結果には2つの種類があります#価値!どのように使用しようとしているかに応じて、ここでエラーが発生します。

まず、値の配列を返す数式がある場合、違いが生じますどこ数式を入力します(「配列が入力されていない場合」)。

その数式をA10(配列を入力しない)に入れるとA8の値が表示され、数式をB10に入れるとB8の値が表示され、数式を列AとB以外の場所に入れると、#価値!これは、Excel のこの種の関数の標準的な動作です。

次に、2つのセルの水平範囲に数式を「配列入力」して両方の値を表示しようとすると(chuffが示唆しているように)、次のようになります。#価値!エラーのせいで関数。

それはなぜ起こるのか行()関数によっては「配列」を返します(ここでのように1行だけの場合でも)。これは適切に処理されません。ハイライトするとわかります。行(G6)F9キーを押すと、6ではなく{6}が表示されます。解決策は、数式で6だけを使用するか、のように別の関数でラップすることができます。例えば

=OFFSET($A$2,SUM(ROW(G6)),0,1,2)

他のいくつかの関数も同様の機能を果たす。ここでは、例えばマックス.....または置き換えることもできます例えば

=OFFSET($A$2,ROWS(G$1:G6),0,1,2)

関連情報