入力しようとしているスピルされた配列数式は、ワークシートの範囲を超えて拡張されます。 範囲または配列を小さくして、もう一度やり直してください。
次の例では、数式をセル F1 に移動するとエラーが解決され、数式が正しく表示されます。
一般的な原因: 列の完全な参照
lookup_value引数を指定することで、VLOOKUP 数式を作成する方法が誤解されることがよくあります。 動的配列対応 Excel の前に、Excel は数式と同じ行の値のみを考慮し、VLOOKUP では 1 つの値のみが予想されるため、他の値は無視します。 動的配列の導入により、Excel では、lookup_valueに提供されるすべての値が考慮されます。 つまり、列全体が lookup_value 引数として指定されている場合、Excel は列内のすべての 1,048,576 個の値を検索しようとします。 完了すると、グリッドにこぼそうとし、グリッドの端にヒットし、#SPILL が発生する可能性が非常に高くなります。 エラーを返します。
たとえば、次の例のようにセル E2 に配置した場合、数式 =VLOOKUP(A:A,A:C,2,FALSE) は、以前はセル A2 の ID のみを参照していました。 ただし、動的配列 Excel では、数式によって #SPILL が発生します。 エラーが発生します。これは、Excel が列全体を検索し、1,048,576 件の結果を返し、Excel グリッドの末尾にヒットするためです。
この問題を解決するには、次の 3 つの簡単な方法があります。
| # | 方法 | 数式 |
|---|---|---|
| 1 | 関心のある参照値のみを参照します。 このスタイルの数式は 動的配列 を返しますが、 Excel テーブルでは機能しません。
|
=VLOOKUP(A2:A7,A:C,2,FALSE) |
| 2 | 同じ行の値だけを参照し、数式を下にコピーします。 この従来の数式スタイルは テーブルで動作しますが、 動的配列は返されません。
|
=VLOOKUP(A2,A:C,2,FALSE) |
| 3 | @演算子を使用して暗黙的な積集合を実行し、数式を下にコピーすることを Excel に要求します。 このスタイルの数式は テーブルで機能しますが、 動的配列は返されません。
|
=VLOOKUP(@A:A,A:C,2,FALSE) |
補足説明
Excel Tech Community の専門家にいつでも依頼したり、コミュニティでサポートを受けたりすることができます。