Excelの数式に#SPILL!と出るのは、数式が複数の値を返そうとした先に別のセル内容があるなどで、結果を展開できないためです。まずエラーセルを選択し、予定されている展開範囲を確認します。

スピル範囲の塞がりを確認

  • エラーセルを選択して破線で示される展開先を見ます。
  • 展開先に見えない空白文字・結合セル・別の数式がないか確認します。
  • テーブル内へ動的配列数式を置いていないか調べます。
  • 列全体の参照でワークシートの端を越える数の結果を返していないか確認します。

既存データを避けて数式を配置する

  1. 元ファイルを複製します。
  2. #SPILL!セルのエラーを選び、障害物のセルを特定する機能が使える場合は利用します。
  3. 障害物の値を消す前に必要な入力かを確認し、別の場所へ移動します。
  4. 結合セルが原因なら結果の展開先を結合のない範囲へ移すことを検討します。
  5. 数式が全列参照で多数の値を返している場合は実データ範囲に絞り、再計算します。

結合セルとテーブル内での制限を確認

  • 障害物セルを機械的に削除すると元データが失われます。
  • 計算結果の「スピル」はExcelテーブル内で使えないケースがあります。
  • 揮発性関数で出力サイズが変わる式もエラーになることがあるので、単純な空欄だけの問題と決めつけないでください。

展開行数が期待どおりか検算

  • エラーが解消したら期待した件数の結果が表示されるか確認します。
  • 数式の参照元を1件変え、出力値が正しく更新されるかテストします。

障害物セルを消す前の検査例

例えばA2に =SEQUENCE(3) を入れ、結果をA2:A4へ表示したいのにA3に手入力値があれば、配列結果の展開先がふさがれています。エラーセルを選ぶと、予定されるスピル範囲が破線で示される場合があります。エラー表示から[障害物セルの選択]を実行できる環境なら対象を特定します。元の入力が必要なら先に別列へ保存し、何でも削除して空白を作ることは避けます。

Microsoft公式資料では、結合セルの存在、Excelテーブル内に動的配列数式を入れたケース、配列の大きさが確定しない数式も原因として挙げています。例えば SEQUENCE(RANDBETWEEN(1,1000)) のように結果数が変動する数式は、単にセルを空けるだけでは解決しない可能性があります。

通常の数式とピボットテーブルのエラーを混同しない

Microsoftの公式資料は、Microsoft 365 Insiderプログラム参加者向けのピボットテーブルでも、展開先にデータがあると #SPILL! が出る場合があると説明しています。一般的なExcelのピボットテーブルすべてに同じ表示が出ると断定せず、通常の動的配列数式の問題か、Insider向け機能かを区別してください。結果の展開先を削除する前に、元データを退避して比較します。

参考資料

おすすめの記事