PR

Excelの#SPILL!エラーが消えない原因と直し方|スピル範囲が空白なのに表示される場合も解説

Excel
記事内に広告が含まれています。

#SPILL! エラーは、数式の結果を複数セルに表示しようとしたものの、Excelが結果を展開できないときに出るエラーです。

Excelで FILTER関数UNIQUE関数SORT関数SEQUENCE関数 などを使っていると、#SPILL! エラーが表示されたことはありませんか。

特に FILTER関数 は検索結果や条件抽出で使う機会が多く、
#SPILL! エラーが発生しやすい関数の一つです。

👉FILTER関数の基本的な使い方はこちら

「数式は合っているはずなのに、なぜか結果が表示されない」
「スピル範囲が空白なのにエラーが消えない」
「そもそもスピルって何?」

このように困った経験がある方も多いと思います。

この記事では、#SPILL! エラーの意味、よくある原因、具体的な直し方を初心者向けに解説します。

🔍今回の記事で分かること
  • #SPILL!エラーが発生する主な原因
  • スピル範囲が空白なのに消えない理由
  • 結合セルやテーブルが原因になるケース
  • FILTER関数・UNIQUE関数での対処法
  • #SPILL!エラーを防ぐ方法

〖意味〗#SPILL!エラーとは? → 数式結果を展開できないエラー

#SPILL! エラーとは、Excelが数式の結果を複数セルに表示しようとしたものの、何らかの理由で表示できないときに出るエラーです。

たとえば、次のような数式があります。

=UNIQUE(A5:A13)

この数式は、A5:A13の中から重複しない値を取り出し、結果を下方向に自動で表示します。

👉UNIQUE関数の詳しい使い方については、こちらの記事で解説しています。

このように、1つの数式から複数の結果が周辺セルに広がる動きを「スピル」と呼びます。

なお、VSTACK関数のように複数の範囲を自動展開する関数でも、
スピルの仕組みが使われています。

👉VSTACK関数の記事はこちら

ただし、結果を表示したい場所に文字や数式、結合セルなどがあると、Excelは結果を展開できません。そのときに表示されるのが #SPILL! エラーです。

〖原因〗#SPILL!エラーが出る主な理由

#SPILL! エラーの原因は、数式そのものの間違いとは限りません。

よくある原因は次の通りです。

原因よくある状況
スピル範囲に値が入っている結果を表示したい場所に文字や数式がある
空白に見えるセルに何か入っているスペース、空文字、見えない数式がある
結合セルがある結果の展開先に結合セルが含まれている
テーブル内でスピル数式を使っているExcelテーブル内では動的配列が展開できない
結果範囲が大きすぎる列全体参照などで範囲が広すぎる
ランダム関数でサイズが変わるRANDARRAYやRANDBETWEENなどで結果範囲が安定しない

それぞれ見ていきましょう。

スピル範囲に値が入っている

一番多い原因は、スピル範囲にすでに値が入っているケースです。

たとえば、C5に =UNIQUE(A5:A13) と入力した場合、結果はC5から下方向に表示されます。
しかし、C4などに別の文字や数式が入っていると、Excelは結果を展開できず #SPILL! エラーになります。

■対策

エラーが出ているセルを選択すると、Excelがスピル予定範囲を点線で表示してくれます。
その範囲内にある不要な値を削除するか、数式を別の場所に移動しましょう。

スピル範囲が空白なのに#SPILL!エラーが消えない場合

「範囲は空白に見えるのに、なぜか #SPILL! エラーが消えない」というケースもあります。

この場合、セルに次のようなものが入っている可能性があります。

  • 半角スペース
  • 全角スペース
  • "" を返す数式
  • 見えない文字
  • 書式ではなく実際の値

見た目が空白でも、Excel上では「何か入っているセル」と判断されることがあります。

■対策

エラーセルの警告アイコンから「障害となっているセルを選択」を選ぶと、原因セルを確認できます。
また、対象範囲を選択して Delete キーで中身を削除すると解消する場合があります。

結合セルが原因で#SPILL!エラーになる

スピル範囲に結合セルが含まれている場合も、#SPILL! エラーになります。
スピルは複数セルに結果を展開する仕組みですが、結合セルがあると結果を正しく配置できません。

■対策

スピル範囲内の結合セルを解除することで解消できます。

手順は、「ホーム」タブより「セルを結合して中央揃え」を解除すればOKです。

結合セルを残したい場合は、数式を別の場所に移動するのも有効です。

もしくはセル結合する必要はなく、表示を複数セルの中央に寄せればOKということであれば「選択範囲内で中央」を設定することで表現することができます。

実務では、結合セルの代わりに「選択範囲内で中央」を使うと、#SPILL! エラーだけでなく並べ替えやフィルターの不具合も防ぎやすくなります。

Excelテーブル内でスピル数式を使っている

Excelのテーブル内では、スピル数式がうまく展開できないことがあります。

たとえば、テーブル内のセルに FILTER関数UNIQUE関数 を入れると、結果を複数セルに広げられず #SPILL! エラーになる場合があります。

■対策

スピル数式は、テーブルの外側に入力しましょう。

または、テーブルを通常の範囲に変換します。

・テーブル内のセルを選択し、「テーブルデザイン」タブから「範囲に変換」を選択

RANDARRAYやRANDBETWEENが原因になる場合

RANDARRAYRANDBETWEEN など、計算のたびに結果が変わる関数を使うと、スピル範囲のサイズが安定せず #SPILL! エラーになることがあります。

例:=SEQUENCE(RANDBETWEEN(1,1000))

この数式は、再計算のたびに表示する行数が変わります。Excelが結果範囲を確定できない場合、#SPILL! エラーになります。

■対策

スピル範囲のサイズが変わりすぎないように、行数や列数を固定します。

=SEQUENCE(10)

ランダムな値を使いたい場合でも、結果のサイズは固定しておくと安定します。

〖防止〗#SPILL!エラーを防ぐコツ

#SPILL! エラーを防ぐには、次のポイントを意識しましょう。

  • スピル数式の周辺には余白を作る
  • 結合セルを使いすぎない
  • テーブル内ではなくテーブル外に数式を置く
  • 列全体参照を避ける
  • 空白に見えるセルも中身を確認する
  • 動的配列関数の結果範囲を想定しておく

特に、FILTERUNIQUESORTSEQUENCE などを使う場合は、結果がどの範囲に広がるかを先に考えておくことが大切です。

〖対策〗#SPILL!エラーを直す手順

#SPILL! エラーが出たら、次の順番で確認すると原因を見つけやすいです。

1.エラーセルをクリックする
2.点線で表示されるスピル範囲を確認する
3.範囲内に値や数式がないか確認する
4.結合セルがないか確認する
5.テーブル内に数式を入れていないか確認する
6.数式の参照範囲が大きすぎないか確認する
7.ランダム関数で結果サイズが変わっていないか確認する

まずは「スピル範囲に何か邪魔なセルがないか」を見るのが一番早いです。

#SPILL!エラーに関するよくある質問

#SPILL!エラーはなぜ表示されますか?

#SPILL! エラーは、数式の結果を複数セルに展開しようとしたものの、表示先の範囲に値や結合セルなどがあり、結果を表示できないときに出ます。
特に多い原因は、スピル範囲にすでに文字や数式が入っているケースです。

スピル範囲が空白なのに#SPILL!エラーが消えないのはなぜですか?

見た目は空白でも、セルに半角スペース、全角スペース、空文字を返す数式などが入っている可能性があります。
エラーセルを選択し、点線で表示されるスピル範囲を確認したうえで、範囲内のセルを選択して Delete キーで中身を削除してみましょう。

#SPILL!エラーはテーブル内でも発生しますか?

はい、発生します。
Excelのテーブル内では、動的配列数式の結果を複数セルに展開できないことがあります。FILTER関数UNIQUE関数 などを使う場合は、テーブルの外側に数式を入力するのがおすすめです。

#SPILL!エラーを無視しても大丈夫ですか?

基本的には放置しない方がよいです。
#SPILL! エラーが出ている状態では、数式の結果が正しく表示されていません。集計表や抽出結果に使っている場合、必要なデータが表示されないまま作業してしまう可能性があります。

#SPILL!エラーと#VALUE!エラーの違いは何ですか?

#SPILL! エラーは、数式の結果を表示する場所に問題があるときに出るエラーです。
一方、#VALUE! エラーは、数式の中で使っている値や引数の種類が合っていないときに出ることが多いです。
簡単に言うと、#SPILL! は「表示先の問題」、#VALUE! は「計算内容の問題」と考えると分かりやすいです。

#SPILL!エラーが出やすい関数はありますか?

はい。複数セルに結果を返す動的配列関数で発生しやすいです。
代表的な関数は次の通りです。

  • FILTER関数
  • UNIQUE関数
  • SORT関数
  • SORTBY関数
  • SEQUENCE関数
  • RANDARRAY関数

これらの関数を使うときは、結果が広がる範囲に余白を作っておきましょう。

まとめ:#SPILL!エラーは「結果を表示する場所」が原因のことが多い

#SPILL! エラーは、数式の結果を複数セルに展開できないときに表示されるエラーです。

主な原因は次の通りです。

  • スピル範囲に値が入っている
  • 空白に見えるセルにスペースや数式が入っている
  • 結合セルがある
  • テーブル内でスピル数式を使っている
  • 参照範囲が大きすぎる
  • 結果範囲のサイズが安定しない

多くの場合、邪魔になっているセルを削除するか、数式を別の場所に移動すれば解消できます。
#SPILL! エラーが出たら、まずはエラーセルをクリックし、点線で表示されるスピル範囲を確認しましょう。

最後まで読んでいただき、ありがとうございました。

ろじゃー

仕事・子育てに奮闘中の社会人です。
仕事でも日常生活でも、ちょっとでも便利になることが紹介できるブログを書いています!
 
仕事柄、PC操作やエクセル、VBAなどは得意です!
Excel歴は10年以上の事務職。
関数やVBAを活用して、資料作成やデータ分析をはじめとした様々な業務の効率化・自動化に取り組んできました。
 
このブログでは、実際の業務で使える効率化テクニックを発信しています。
「わからない」や「困った」など問題を抱える方や、もっと効率化したいと思っている方に、少しでも役立てれば幸いです!

ご質問・ご相談など、お気軽にご連絡ください。

ろじゃーをフォローする
ご質問・ご相談はこちらへ!
 ろじゃー|日々、ちょっとずつ良くなることを目指すブロガー
Excel歴10年以上。VBAや関数、業務効率化などを発信中。
📩 お問い合わせはこちら
Excel
シェアする
ろじゃーをフォローする

コメント

タイトルとURLをコピーしました