入力しようとしているスピル済み配列数式がワークシートの範囲を超えています。 より小さい範囲または配列でもう一度やり直してください。
次の例では、数式をセル F1 に移動するとエラーが解決され、数式は正しくスピルします。
一般的な原因: 完全な列参照
lookup_value 引数を過剰に指定して VLOOKUP 数式を作成するときによくある誤解が発生します。 動的配列に対応する Excel より前、Excel では、VLOOKUP が 1 つの値のみを想定していたため、Excel では同じ行の値のみが数式として考慮され、他の値は無視されていました。 動的配列の導入により、Excel はlookup_valueに提供されたすべての値を考慮します。 この変更により、列全体を lookup_value 引数として指定すると、列の値 1,048,576 すべてが検索されます。 完了した後、それらをグリッドにこぼそうとしますが、グリッドの端に達して #SPILL が発生する可能性が非常に高いです。 エラーを返します。
たとえば、次の例のようにセル E2 に配置された場合、数式 =VLOOKUP(A:A,A:C,2,FALSE) は以前セル A2 の ID のみを検索していました。 ただし、動的配列 Excel では、数式は #SPILL! Excel は列全体を検索し、1,048,576 件の結果を返し、Excel グリッドの最後に到達するためです。
この問題を解決するには、次のいずれかの方法を使用します。
| # | 方法 | 数式 |
|---|---|---|
| 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 技術コミュニティの専門家にいつでも質問するか、コミュニティでサポートを受けることができます。