入力しようとしているスピル済み配列数式は、ワークシートの範囲を超えて拡張されます。 より小さい範囲または配列でもう一度やり直してください。
次の例では、数式をセル F1 に移動するとエラーが解決し、数式は正しくスピルします。
一般的な原因: 完全な列参照
lookup_value 引数を過剰に指定して VLOOKUP 数式を作成するという、誤解されがちな方法があります。 動的配列対応の Excel を使用する前は、VLOOKUP で 1 つの値のみが想定されるため、Excel は同じ行の値のみを数式と考慮し、他の値は無視していました。 動的配列の導入により、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 技術コミュニティの専門家にいつでも質問するか、コミュニティでサポートを受けることができます。