#SPILL の修正方法! を修正する

適用先
Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016 Excel for iPad Excel Web App Excel for iPhone Excel for Android タブレット Excel for Android スマートフォン

#SPILL エラーは、数式が複数の結果を返す場合、またはピボットテーブルの範囲が空白でなく、Excel が結果をグリッドに返せない場合に返されます。 これらのエラーの種類の詳細については、次のヘルプ トピックを参照してください。

ピボットテーブル #SPILL! は現在、Microsoft 365 Insider プログラムの参加者が利用できます。

スピル範囲が空ではない

このエラーは、スピルされた配列数式またはピボットテーブル範囲のスピル範囲が空でない場合に発生します。  

#SPILL!エラー - スピル範囲が空白ではない

#SPILL を含むセルを選択します。 エラーを表示して、意図したスピル範囲を示す破線の境界線を表示します。 #SPILL! を含むセルを選択することによって エラーを確認すると、エラー チェック アラートが表示されます。

エラー チェック アラートを選択し、[ 障害物セルの選択 ] オプションを選択して、障害物セルにすぐに移動します。 その後、障害となっているセルのエントリを削除するか移動することで、エラーをクリアできます。 障害物がクリアされるとすぐに、配列数式がスピルするか、ピボットテーブルが意図したとおりに展開されます。 

不確定なサイズ

Excel はスピルされた配列のサイズを判断できませんでした。これは揮発性が高く、計算パス間でサイズが変更されるためです。 たとえば、次の数式でこの #SPILL がトリガーされます。 エラーを返します。

=SEQUENCE(RANDBETWEEN(1,1000))

動的な配列サイズ変更では、スプレッドシートが完全に計算されるように、追加の計算パスがトリガーされる場合があります。 配列のサイズがこれらの追加パス中に変化し続け、安定しない場合、Excel は動的配列を #SPILL! として解決します。

このエラー値は、一般に、RAND、RANDARRAY、および RANDBETWEEN 関数の使用に関連付けられます。 OFFSETINDIRECTTODAY などのその他の揮発性関数は、計算パスごとに異なる値を返しません。 

ワークシートの端を超えて拡大する

たとえば、次の例のようにセル E2 に配置された場合、数式 =VLOOKUP(A:A,A:C,2,FALSE) は、以前はセル A2 の ID のみを検索していました。 ただし、動的配列 Excel では、数式によって #SPILL! Excel は列全体を検索し、1,048,576 件の結果を返し、Excel グリッドの末尾に到達します。

  #SPILL!結果がワークシートの端を越えてスピルしてしまうため、セル E2 の =VLOOKUP(A:A,A:D,2,FALSE) でエラーが発生しました。数式をセル E1 に移動すると、正しく機能します。

この問題を解決するには、次の 3 つの簡単な方法があります。

# 方法 数式
1 目的の参照値のみを参照します。 このスタイルの数式は 動的配列 を返しますが、 Excel のテーブルでは機能しません。
#SPILL にならない動的配列を返すには、=VLOOKUP(A2:A7,A:C,2,FALSE) を使用します。エラー。
=VLOOKUP(A2:A7,A:C,2,FALSE)
2 同じ行の値だけを参照し、数式を下にコピーします。 この従来の数式スタイルは テーブルでは機能しますが、 動的配列は返されません。
単一のlookup_value参照 = VLOOKUP(A2,A:C,32,FALSE) で従来の VLOOKUP を使用します。この数式は動的配列を返しませんが、Excel のテーブルで使用できます。
=VLOOKUP(A2,A:C,2,FALSE)
3 @ 演算子を使用して共通部分を実行するように Excel に要求し、数式をコピーします。 このスタイルの数式は テーブルで機能しますが、 動的配列は返されません。
@ 演算子を使用し、=VLOOKUP(@A:A,A:C,2,FALSE) をコピーします。この参照スタイルはテーブルでは機能しますが、動的配列は返されません。
=VLOOKUP(@A:A,A:C,2,FALSE)

テーブルの数式

スピル済み配列数式は、 Excel の表ではサポートされていません。 数式をテーブルの外に移動してみるか、テーブルを範囲に変換してみてください ([テーブル デザイン] > [ツール] >[範囲に変換] の順に選択)。

#SPILL!エラー - テーブルの数式

メモリが不足している

入力しようとしている配列数式がスピルされたため、Excel のメモリ不足が原因です。 より小さい配列または範囲を参照してみてください。

結合されたセルにスピルする

スピル済みの配列数式は、結合されたセルにスピルすることはできません。 対象の セルの結合を解除 するか、結合したセルと交差しない別の範囲に数式を移動してください。

#SPILL!エラー - 結合されたセルにスピルする

数式を選択すると、意図したスピル範囲を示す破線の境界線が表示されます。 数式を選択すると、エラー チェック アラートが表示されます。

エラー チェック アラートを選択し、[ 障害物セルの選択 ] オプションを選択して、障害物セルにすぐに移動できます。 結合されたセルがクリアされるとすぐに、配列数式が意図したとおりにスピルします。

認識されない/フォールバック

Excel は、このエラーの原因を認識しないか、調整できません。 数式にシナリオに必要なすべての引数が含まれていることを確認してください。

補足説明

関連項目

Excel 技術コミュニティの専門家にいつでも質問するか、コミュニティでサポートを受けることができます。

FILTER 関数

RANDARRAY 関数

SEQUENCE 関数

SORT 関数

SORTBY 関数

UNIQUE 関数

動的配列とスピル配列の動作

演算子の共通部分: @