※ Microsoft365(旧Office365)Excelの画像で解説しています。
「#スピル!」や「#SPILL!」はスピルの使い方の不具合から発生するエラーです。「スピル」は複数の結果を一括で表示できる新機能ですが、表示を妨げる何らかの不具合があるとエラー値「#スピル!」「#SPILL!」を返します。
「#スピル!」エラー一覧
「#スピル!」エラー1.スピル範囲が空白ではありません
- このエラーの原因
- スピルで計算結果を表示する範囲が空白でなく、既にデータが入力されているために発生するスピルエラーです。
- 対処法
-
- エラーのアイコンをクリック
- 「阻害しているセルを選択」をクリック
- 入力データがあるセルが選択される
- 入力データを削除するか移動させる
- エラーが消えて、スピルの結果が表示される
「#スピル!」エラー2.スピル範囲が大きすぎます
- このエラーの原因
- スピルの検索値に列全体を指定した場合に発生するスピルエラーです。
- 対処法
- 下図の例では、VLOOKUP関数の検索値に列全体を指定したためスピルで返す範囲がワークシートを超えてしまうのでエラーになっています。この場合は、数式を確定すると「入力した数式は、ワークシートの端を超えてはみ出す可能性があります。」という注意画面が開き、代替の式「(例)=VLOOKUP(@D:D,A:B,2,0)」が提示されます。
「はい」を選択すると代替の数式が入力されます。但し、この数式の列範囲の冒頭にある「@」はスピルを無効にする演算子です。スピルが解除されるので、計算結果の一括表示はできません。スピルで実装したいなら、検索値を「D:D」から「D2:D8」に修正します。
「いいえ」を選択すると「#スピル!」エラーとエラーアイコンが表示されますが、ここからエラーの修正を試みるとうまくいかないことが多いようです。動作も重く、メモリ不足からExcel自体がフリーズして操作の続行ができなくなったり、場合によってはExcelを閉じられなくなることさえあります。ここは取り敢えず「はい」をクリックして代替数式を入力し、その後に数式バーで引数の指定範囲を変更する手順をおすすめします。
「#スピル!」エラー3.スピル範囲がテーブル内です
- このエラーの原因
- スピルをテーブル内で実行した場合に発生するエラーです。
- 対処法
- この場合は、数式を確定すると「入力した数式は複数の値を返すことができますが、テーブルではサポートされていません。」という注意画面が開き、代替の式「(例)=[@単価]*[@数量]」が提示されます。
「はい」を選択すると代替の数式が入力されます。テーブルは構造化参照という独特の数式を使って、計算結果の一括表示が可能です。テーブルではスピルが使えないというより、使う必要がありません。
「#スピル!」エラー4.スピル範囲に結合されたセルがあります
- このエラーの原因
- スピルで計算結果を表示する範囲に結合されたセルがある場合に発生するスピルエラーです。
- 対処法
-
- エラーのアイコンをクリック
- 「阻害しているセルを選択」をクリック
- 結合されたセルが選択される
- 「ホーム」タブ➔「配置」にある「セルを結合して中央揃え」をクリックして解除する
- エラーが消えて、スピルの結果が表示される
「#スピル!」エラー5.その他のエラー
上記のスピルエラー以外にも、以下のような不具合が発生することがあります。
- 配列の指定が多すぎると、メモリ不足でスピルが計算を完了できないことがあります
- スピルの不具合ではなく、数式そのものに不備があれば「#VALUE!」「#REF!」「#DIV/0!」「#NUM!」「#N/A」等のエラーが返されます
- スピルで一括表示した範囲に隣接するセルにデータを追加すると「隣接したセルを使用していません」というエラーが出ることがあります。スピル範囲に含めたい場合は再計算します