- スピルを解除する前に、自分のExcelで起きるのかを見分ける
- スピルとは、1つの数式の結果が隣のセルへこぼれ出す仕組みのこと
- 対応した版でスピルを1つに戻すには数式の前に@を付ける
- Ctrl+Shift+Enterの配列数式なら対応していない版でも入れられる
- スピルをまとめてオフにする設定は公式の案内に見当たらない
- #SPILL!エラーはこぼれる先がふさがっているという合図
- スピル範囲演算子のシャープ記号は対応した版だけの書き方
- 動的配列に対応していない版にはスピルの仕組みそのものが無い
- 使えない書き方を打つと断られ方が3通りに分かれた
- 新しい版で作られたファイルを開いたときに見える_xlfnという文字
- この記事で実機で確かめたことと確かめられなかったこと
- スピルの解除でよく聞かれること
- スピルは止めるより、起きるかどうかを先に見分けるほうが早い
- 出典・引用サイト
スピルを解除する前に、自分のExcelで起きるのかを見分ける
Excelのセルに数式を1つ入れただけなのに、押してもいない隣のセルや下のセルにまで結果がずらりと並んでしまう。この動きのことを「スピル」と呼びます。こぼれる、あふれる、という意味の言葉です。じゃまに感じて「エクセル スピル 解除」と検索し、このページを開いてくださった方が多いと思います。
ただ、方法をお伝えする前に、どうしても先に申し上げておきたいことがあります。スピルは、お使いのExcelの版によっては、そもそも起きません。起きない版を使っている方が「解除のしかた」を探し続けても、解除するものが最初から無いので、いつまでも答えにたどり着けません。反対に、起きる版を使っている方が「設定でまとめてオフにするボタン」を探し続けても、そちらもなかなか見つかりません。この二つのすれ違いが、スピルという言葉のまわりでいちばん多く起きている行き違いだと思っています。
ですからこの記事は、解除の手順から始めません。最初にやることは、自分のExcelでスピルが起きるかどうかを、たった1つの数式で見分けることです。見分けがついてから、自分に当てはまるほうの章だけを読んでいただければ十分です。確かめるだけなら1分もかかりません。
もう一つ、言葉の整理をさせてください。ここでいう版の違いは、買い切りか月々払いかではありません。スピルの土台になっている仕組みは動的配列と呼ばれ、これに対応しているかどうかで分かれます。Microsoft 365はもちろん、買い切りのExcel 2021やExcel 2024も対応しています。対応していないのは、Excel 2019やそれ以前です。ですのでこの記事では、買い切りかどうかではなく、動的配列に対応した版か、対応していない版かという言い方で通します。
この記事に書いてある内容は、当サイトの作業用パソコンで実際に手を動かして測った結果と、Microsoftの公式ページに書かれている説明の、二つでできています。検証に使ったのは、Windows 11 バージョン 24H2(ビルド 26100.8875)と、Excel Home & Business 2019(バージョン 16.0.19127.20302)が入ったパソコンです。この版は、動的配列に対応していない側にあたります。
そのため正直にお伝えします。Microsoft 365などの対応した版で実際にスピルが起きる様子は、当サイトの検証機では試せていません。試せていない部分は公式の説明としてお伝えし、実際に手を動かして確かめた部分とは章を分けてあります。どちらでもない一般的な話を書くときは、その旨をその場で断ります。どこまでが実測で、どこからが公式の受け売りなのかが、読んでいて分かるように書いたつもりです。
1つのセルに範囲を入れて見分ける手順
用意するものはありません。今開いているExcelの、空いているシートを1枚使うだけです。文字は何でも構いませんが、あとで説明しやすいように果物の名前にしています。
- Excelで新しいシートを1枚開きます。
- セルA1・A2・A3に、りんご・みかん・りんご と縦に入力します。
- 少し離れたセル、たとえばC2をクリックします。
- 半角で
=A1:A3と打ちます。 - Enterキーを押します。
- C2のマスと、その下のC3・C4のマスを見比べます。
ここで打っている =A1:A3 は、A1からA3までの3つのマスをまとめて指し示すだけの、いちばん単純な式です。関数は使っていません。3つ分を指しているのに、答えを入れる場所は1つしかない。この状態でExcelがどう振る舞うかが、そのまま版の違いになって表に出ます。

出た結果の読み分け方
結果は、次の表のどれかになります。エラーの文字が出た場合も含めて整理しました。
| C2に入れたあとの見え方 | 意味していること | この記事のどこを読むか |
|---|---|---|
| C2に「りんご」、C3に「みかん」、 C4に「りんご」と3つ並んだ |
動的配列に対応した版です。 Microsoft 365・Excel 2021・2024 など |
次の章から、@を付ける方法と 配列数式で入れ直す方法へ |
| C2にだけ「みかん」と出て、 C3とC4は空のまま |
動的配列に対応していない版です。 Excel 2019 やそれ以前 |
後半の、対応していない版で 何が起きるかの章へ |
| エラーの文字が出た | まずはA1〜A3と同じ2行目のセルで もう一度試すと、はっきりします |
この手順をやり直してから もう一度読み分けます |
2番目の「C2にだけ、みかんと出た」という結果を見て、なぜ2つ目の値が返るのかと不思議に思われたと思います。実はこれ、Excelが古い時代からずっと持っている決まりごとです。数式を入れたセルと同じ行にある値を1つだけ拾ってくる、という決まりで、C2は2行目なので、A列の2行目である「みかん」が返ってきます。この決まりごとについては、後半の章で公式の記述と実機の結果を並べてお見せします。
この見分けを最初にやっておく意味は、読む章を減らせることだけではありません。人に相談するときの伝え方が変わります。「スピルが解除できません」と言うより、「1つのセルに範囲を入れたら、下まで3つ並びました」と言えたほうが、話が早いのです。画面の前で起きたことを、そのまま伝えられる形になっているからです。
スピルとは、1つの数式の結果が隣のセルへこぼれ出す仕組みのこと
読み分けができたところで、そもそもスピルとは何なのかを、言葉の意味からそろえておきます。ここが分かっていないと、このあとの対処がただの丸暗記になってしまうからです。
Microsoftの公式ページ「動的配列数式とスピル配列の動作」には、こう書かれています。『スピルとは、数式によって複数の値が生成され、その値が隣のセルに配置されることです。』言い回しは少し硬いのですが、やっていることは単純です。答えが複数できてしまったので、1つのセルに収まりきらず、隣へ置きにいった。それだけです。
同じページには、Enterを押した瞬間に何が起きるかも書かれています。『Enter キーを押して数式を確認すると、Excel によって出力範囲のサイズが動的に変更され、その範囲内の各セルに結果が配置されます。』つまり、こぼれる範囲はあらかじめ決まっているのではなく、答えの数に合わせてExcelがその場で広げています。10件のデータなら10マス、3件なら3マスに変わります。
ここが、多くの方が「勝手に動いて気持ちが悪い」と感じるところだと思います。自分は1つのマスしか触っていないのに、結果は自分の知らないところまで伸びていく。しかも、こぼれた先のマスは自分では編集できません。公式にも『スピル領域の最初のセルだけが編集可能です。』とあります。あとから2つ目、3つ目のマスだけ直そうとしても受け付けてもらえないので、壊れたのかと思ってしまうわけです。壊れてはいません。仕様どおりの動きです。

=A1:A3でも結果が変わります。左は当サイトの実機で確かめた結果、右は公式の説明にもとづく図で実機では試せていません。いま載せた左右の図について、はっきりお断りしておきます。左側の動きは当サイトの検証機で実際に確認したものです。右側の動きは当サイトの実機では試していません。公式の説明にもとづいて描いた図です。当サイトの検証機に入っているExcelには、そもそもスピルの仕組みが無いため、こぼれる様子を自分の目で見ることができないからです。この記事では、この線引きを最後まで守って書きます。
対応した版でスピルを1つに戻すには数式の前に@を付ける
先ほどの見分けで、C2からC4まで3つ並んだ方はこちらです。動的配列に対応した版をお使い、ということになります。
この場合の対処は、Excelの設定を触ることではなく、じゃまなその数式だけに、@という記号を1文字足すことです。アットマークと読みます。メールアドレスに使うあの記号と同じものです。
- こぼれてしまっている数式の、いちばん左上のセルをクリックします。
- 画面上のほうにある数式バーの中をクリックします。
- イコールのすぐ右に、半角で @ を1文字入れます。
- たとえば
=A1:A3なら=@A1:A3という形にします。 - Enterキーを押します。
- こぼれていた下のセルの表示が消え、1つだけになったことを確かめます。
なぜこの1文字で止まるのか。Microsoftの公式ページ「演算子の共通部分: @」には、『共通部分ロジックでは、複数の値を 1 つの値に圧縮します。』とあります。公式は反対側からも説明していて、『範囲または配列を返す場合、 @ を削除すると、隣接するセルに スピル が発生します。』とも書かれています。@を外すとこぼれる、ということは、裏を返せば、@が付いている間はこぼれずに1つへ圧縮されている、ということになります。
この@を付ける操作そのものは、当サイトの検証機では試せていません。検証機は動的配列に対応していない版なので、公式の説明としてお伝えしています。なお、対応していない版で =@A1:A3 をキーボードから打つとどうなるかは、当サイトで実際に測りました。その結果は後半の章に書いています。
この記事では@を対処の道具としてだけ紹介しています。Excel関数の「@」記号の正体とは?のほうに、@そのものの意味と、版による扱いの違いをまとめてあります。数式の中で@を見かけて戸惑った方は、そちらを読んでいただくのが早いです。スピルと@がどう関係しているのかという話は、Excelのスピル機能とアットマーク(@)の使い方のほうで扱っています。
Ctrl+Shift+Enterの配列数式なら対応していない版でも入れられる
@を使う以外にも、結果の入る範囲を昔ながらのやり方で固定してしまう手があります。それが、Ctrl(コントロール)キーとShift(シフト)キーとEnterキーの3つを同時に押して確定する入れ方です。頭文字をとってCSE配列と呼ばれることもあります。
公式ページには、この昔ながらの入れ方について、はっきりした書き方がされています。『CTRL+SHIFT+ENTER (CSE) を介して入力されたレガシ配列数式は、下位互換の理由で引き続きサポートされていますが、今後は使用しないでください。』サポートは続いているけれど、これから新しく作るならすすめない、という立場です。
ここは当サイトの実機で確かめた部分です。Excel 2019のシート上で3つのセルを選び、キーボードで =A1:A3 と打ってからCtrl+Shift+Enterを押したところ、3つのセルに「りんご」「みかん」「りんご」が入り、配列数式として確定しました。メッセージの窓は出ませんでした。後半の章に書くとおり、同じ版で@もシャープ記号も手入力では確定できなかったので、今回試した範囲では、対応していない版で複数のセルにまとめて結果を出す道は、この入れ方だけが通っていたことになります。
- 結果を出したい範囲を、あらかじめマウスでドラッグして選びます。
- 選んだまま、半角で
=A1:A3のように数式を打ちます。 - Enterキーだけを押さずに、CtrlキーとShiftキーを押しながらEnterキーを押します。
- 選んだ範囲すべてに結果が入っていることを確かめます。
公式の説明では、この入れ方の数式は中かっこで囲まれた形で表示されます。当サイトの実機でも、確定したあとに数式バーを見ると {=A1:A3} と、中かっこで囲まれた形になっていました。公式に書かれているとおりの表示です。この状態は、あとで出てくるシート全体の写真にも写っています。
この入れ方の利点は、結果が入る範囲を自分で決められることです。データが増えても勝手に伸びません。逆に言えば、データが増えたときに範囲を広げ直すのは自分の仕事になります。どちらが良いかは使い方しだいですが、勝手に伸びるのが困る、という理由でスピルを止めたい方には、この昔ながらの入れ方がいちばん近い答えになります。
スピルをまとめてオフにする設定は公式の案内に見当たらない
ここで、多くの方が期待していることについて、確認できた範囲でお伝えします。オプションの画面のどこかに、スピルを止めるチェックボックスがあるはずだ。そう思って探した方も多いと思います。
今回確認した公式のページに書かれている止め方は、どれも数式1本ごとの対処でした。@を付けて1つに圧縮する方法と、昔ながらの配列数式として入れ直す方法は案内されていますが、機能そのものをまとめて切る設定の案内は見当たりませんでした。当サイトの検証機はそもそも動的配列に対応していない版なので、対応した版のオプション画面を開いて確かめることもできていません。ここは「公式の案内には無い」というところまでが、いま言える範囲です。
おそらく、スピルがExcelの計算のしかたそのものの土台に組み込まれているからだと思います。公式の言い方を借りれば、動的配列の導入によって、数式が1つの値を返すという制限そのものが無くなりました。土台が変わっているので、後からスイッチで昔に戻す、という作りにはなっていない、と考えると納得しやすいはずです。
ですので、対処の考え方はこう切り替えてください。全部を止めるのではなく、じゃまな数式だけ、その場で1つに戻す。手数は増えますが、ほかの便利な計算まで巻き添えにしないという意味では、こちらのほうが安全です。
それでも、どうしてもこぼれてほしくない表がある、という場面はあると思います。他の方に配る予定の表や、印刷して使う表がそうです。そういうときは、数式のままで持たせようとせず、計算が終わった段階で結果を値に変えてしまうほうが、後々の行き違いが減ります。手順は次のとおりです。
- 結果が並んでいる範囲を、マウスでドラッグして選びます。
- CtrlキーとCキーを同時に押して、コピーします。
- 同じ場所を選んだまま、右クリックします。
- 貼り付けのオプションの中から「値」を選びます。
- 数式バーの表示が、数式ではなく文字や数字に変わったことを確かめます。
#SPILL!エラーはこぼれる先がふさがっているという合図
スピルの話でもう一つ多いのが、#SPILL! という見慣れないエラーです。スピルという言葉が入っているので、スピルを解除したい方の検索とも重なります。
このエラーについては、Microsoftが専用の公式ページを用意しています。「#SPILL を修正する方法! を修正する」です。原因が場合ごとに分けて書かれているので、この章はそのページの記述に沿って整理します。#SPILL!は数式の間違いではなく、こぼれていく先の場所がふさがっているという合図です。数式そのものを何度見直しても直らないのは、原因が数式の外にあるからです。
先にお断りしておきます。当サイトの検証機ではスピルそのものを起こせないため、この章に書く原因と直し方は、実際に出して直すところまでは試せていません。公式ページに書かれている内容の整理としてお読みください。
こぼれる先が空いていないとき
いちばん多いのがこれです。公式ページには『このエラーは、スピルされた配列数式またはピボットテーブル範囲のスピル範囲が空白でない場合に発生します。』とあります。答えが3つ並ぼうとしている先に、以前入力した文字が残っている、という状態です。直し方も同じページに書かれていて、『その後、エラーをクリアするには、妨げているセルのエントリを削除するか、移動します。』とあります。じゃまなものを消すか、どかすか、の二択です。
探し方については、公式ページが便利な機能を案内しています。エラーが出ているセルの横に出る警告のマークをクリックすると、その中に[妨げセルの選択]という項目があり、これを選ぶとじゃまをしているセルへそのまま移動できる、と書かれています。手作業で探し回る前に、まずこれを試すのが早いです。
厄介なのは、見た目では空に見えることがある点です。スペースキーを1回押しただけのマスは、真っ白に見えても何かが入っている可能性があります。ここは当サイトでは測っていませんが、疑わしいマスは1つずつクリックして数式バーを見るのが確実です。
- エラーが出ている数式のセルをクリックします。
- 横に出る警告のマークをクリックし、[妨げセルの選択]を選びます。
- 移動した先のマスに何が入っているかを、数式バーで見ます。
- この項目が出てこない場合は、そのセルから下と右の点線の枠を見ます。
- 枠の中で、文字が入っているマスや見た目が空のマスを1つずつ確かめます。
- じゃまなマスを選んでDeleteキーを押します。
- それでも直らなければ、数式ごと別の空いている場所へ移します。
計算のたびに結果の数が変わるとき
これは公式ページが「不確定なサイズ」として説明している原因です。こう書かれています。『Excel は揮発性であり、計算パス間でサイズが変更されるため、スピルされた配列のサイズを判断できませんでした。』むずかしい言い方ですが、要するに、計算するたびに結果の個数が変わってしまうので、こぼれる場所の広さを決められない、ということです。
公式が例に挙げているのは =SEQUENCE(RANDBETWEEN(1,1000)) という形の数式です。乱数、つまりサイコロのようにその都度ちがう数を返す仕組みを使っているので、1回目と2回目で必要なマスの数が変わります。公式は、このエラーがRANDやRANDARRAY、RANDBETWEENといった乱数の関数と結び付いていることも書いています。
対処は、結果の個数が変わらないようにすることです。乱数の部分を別のセルで一度確定させ、その値を使って計算する。あるいは、こぼれる個数を自分で決めた数に固定する。乱数を使った表でだけ起きる原因なので、心当たりのない方は読み飛ばして構いません。
こぼれる先に結合されたセルがあるとき
見出しをきれいに見せるために、いくつかのマスをつなげて1つにする「セルの結合」を使っている表は多いと思います。この場合について、公式ページははっきり書いています。『スピルされた配列数式は、マージされたセルにスピルできません。』マージというのは結合のことです。結合されたマスはExcelから見ると1つの大きなかたまりなので、3つに分けて答えを置くことができません。
直し方は、結合を解くか、結合を含まない場所に数式を移すかのどちらかです。表の見た目を崩したくない場合は、計算だけを別の場所でさせて、見せたい場所からその結果を参照するほうが、あとあと楽になります。
こぼれる先がワークシートの端まで届いてしまうとき
これは気づきにくい原因です。列全体を指定して計算させたときに起こります。公式ページは、その状況をこう説明しています。『Excel は列全体を検索し、1,048,576 件の結果を返し、Excel グリッドの末尾にヒットするため、エラーです。』シートの行数を超えて並べようとするので、置き場所が足りなくなる、という理屈です。
対処は、列全体ではなく必要な範囲だけを指定し直すことです。似た例で、シートのかなり下のほうに数式を置いていて、そこから何十件も結果を並べようとする場合も同じことが起きます。#SPILL! が出たら数式より先に置き場所を疑う、という順番を覚えておくと、無駄に数式を書き直さずに済みます。
表として設定した範囲の中に入れているとき
これも知らないと分からない落とし穴です。Excelには、範囲を「テーブル」として設定する機能があります。縞模様が付いて、見出しにフィルターのボタンが出るあれです。公式ページはExcelのテーブルについて、『スピルされた配列数式はサポートされていません。』と書いています。動的配列の公式ページにも『スピル済みの配列数式は、Excel の表自体には対応していないため、表の外のグリッドに配置する必要があります。』と書かれています。
対処は簡単で、数式をテーブルの外のふつうのマスに置き直すだけです。テーブルのデータを参照すること自体は問題ありません。
原因が見当たらないとき
公式ページは、上のどれにも当てはまらない場合についても触れています。『入力しようとしているスピルされた配列の数式によって、Excel のメモリ不足が発生しました。』という説明と、『Excel が認識しないか、このエラーの原因を調整できません。』という説明です。つまり、Excel自身が原因を特定できない場合があることを、公式が認めています。
この場合は、対象にする範囲を小さくして試すのが現実的です。列全体ではなく必要な行数だけにする。いくつかの数式に分けて計算する。原因を突き止めるより、負担を減らして通す、という方向の対処になります。
| #SPILL!が出たときに見る場所 | ふさいでいるものの正体 | そのときの直し方 |
|---|---|---|
| 点線の枠の中に文字が見える | 以前入力したデータが 残っている |
そのマスを選んでDeleteキーで消すか、 データを別の場所へ移す |
| 枠の中に大きなマスがある | セルの結合 | 結合を解くか、 結合の無い場所へ数式を移す |
| 乱数の関数を使っている | 計算のたびに 結果の個数が変わる |
乱数を別のセルで確定させるか、 こぼれる個数を固定する |
| 列全体を指定している | こぼれる先がシートの 端まで届いてしまう |
必要な範囲だけを指定し直す |
| 縞模様やフィルターのボタンがある | テーブルとして 設定された範囲 |
テーブルの外のマスに数式を置き直す |
| どれにも当てはまらない | メモリ不足、または Excelが特定できない原因 |
対象の範囲を小さくして試す |
スピル範囲演算子のシャープ記号は対応した版だけの書き方
スピルの話とセットでよく出てくるのが、数式のうしろに付ける # という記号です。シャープ記号、または井桁と読みます。これについても公式ページがあり、「スピルされた範囲演算子」は、SEQUENCEのようにスピルする関数を扱う場合の話として、こう書いています。『スピルされた範囲演算子 (#) を範囲の後に配置することで、スピル範囲全体を参照できます。』こぼれて広がった結果を、ひとかたまりとして指すための書き方です。
使い方は、こぼれ出した数式が入っているいちばん左上のセル番地のうしろに、この記号を1つ足すだけです。公式ページに載っている例では、A2に入れた数式の結果がA2からA11までこぼれているとき、別のセルに =SUM(A2#) と書くと、こぼれた分すべてを合計できる、という形になっています。件数が増えても、参照するほうを書き直す必要がない、という使い方をされます。公式の例はどれも、このように関数で包んだ形で紹介されています。
ここで、この記事ならではの事実を1つ。この公式ページの適用先には、Excel for Microsoft 365 と Excel for Microsoft 365 for Mac しか挙がっていません。買い切りの版は1つも書かれていません。つまり、この書き方は対応した版のためのものだと、公式ページの適用先そのものが示しています。
そして当サイトの検証機で、この記号を実際にキーボードから打ってみました。打ったのは =A1# です。A1には「りんご」という文字が入っているだけの、ふつうのセルです。結果は確定できず、「この数式には問題があります。」というメッセージが出ました。
ここで先に断っておきます。このメッセージは、比べるために打った、でたらめな関数名でも同じ文面でした。ですからスピル専用の案内ではなく、Excelが知らない書き方に対する一般的なメッセージだと考えられます。詳しくは後半の章で、対照に打ったものと並べて書きます。
もう一つ。今回打ったのは、ふつうのセルにシャープ記号を付けた形です。公式が説明している使い方、つまりこぼれた結果の入っているセルに付けた場合は試せていません。この版ではスピルそのものを起こせないので、こぼれた結果というものが作れないからです。対応した版でこの記号が実際に働く様子も、当サイトの実機では確かめられていません。
動的配列に対応していない版にはスピルの仕組みそのものが無い
ここからが、当サイトの実機で確かめた話です。最初の見分けで「C2にだけ、みかんと出た」方は、この章とその次の章がご自分の状況にあたります。
結論からお伝えします。動的配列に対応していない版には、そもそもスピルという仕組みが入っていないので、解除するもしないもありません。設定を探す必要も、@を覚える必要もありません。今のまま使っていて何も問題は起きません。
当サイトの検証機で、実際に何を試して、どうなったのかを並べます。ここからは、キーボードから手で打ったものと、プログラムからExcelに数式を入れたものが混ざるので、表に「試した方法」の列を付けました。読者のみなさんが実際にやるのはキーボードのほうなので、そこを区別しておく必要があるからです。
| 実機で試した書き方 | 試した方法 | Excel 2019での結果 |
|---|---|---|
=A1:A3 を1つのセルに |
プログラムから入力 | 受け付けられ、 「みかん」が1つだけ返った |
=@A1:A3 |
キーボードで手入力 | メッセージの窓が出て、 セルには何も入らなかった |
=A1#(A1は「りんご」が 入ったふつうのセル) |
キーボードで手入力 | 別の文面のメッセージが出て、 セルには何も入らなかった |
| 動的配列用のプロパティで 数式を入れる方法 |
プログラムから入力 | 受け付けられなかった |
| 3つのセルを選んで Ctrl+Shift+Enter |
キーボードで手入力 | 成功し、3つのセルに りんご・みかん・りんごが入った |
1行目の =A1:A3 を1つのセルに入れた結果は、プログラムからExcelに数式を入れて、表示された文字を取り出す方法で確かめています。返ってきたのは「みかん」の1つだけでした。数式を入れたのは2行目のセルで、A列の2行目が「みかん」ですから、数式と同じ行の値が1つだけ返った、ということになります。
この動き方は、当サイトが勝手に見つけたことではなく、公式に書かれている仕組みです。『値が範囲の場合は、数式と同じ行または列のセルから値を返します。』がそれにあたります。公式に書かれている仕組みを、実機でそのとおりになることを確かめた、という位置づけです。
2行目と3行目は、キーボードから打った結果です。=@A1:A3 を打つと「その関数は正しくありません。」というメッセージの窓が出て、セルは空のままでした。=A1# を打つと、こちらは「この数式には問題があります。」という、別の文面のメッセージが出ました。どちらも確定できません。ほかのサイトで見かける「@を付ければ止まります」という説明を、対応していない版で試しても、そもそも入力の段階で断られる、ということです。手順どおりにやったのに動かない、と感じていた方は、腕の問題ではなく、版の問題です。
もう一つ、この章で申し上げておきたいことがあります。対応していない版だから性能が劣っている、という話ではありません。合計や平均、条件で分けて数える、といったふだんの表計算は、どちらの版でも同じようにできます。違うのは、答えが複数できる新しいやり方に対応しているかどうか、その一点だけです。今の版でできることを使い切っているうちは、無理に乗り換える必要はないと思っています。
- 動的配列に対応していない版では、スピルが起きないので解除の作業そのものが不要です。
- 止めたいのではなく使いたい場合は、対応した版に切り替えるしか道がありません。
使えない書き方を打つと断られ方が3通りに分かれた
ここは、今回いちばん手間をかけて測ったところです。そして、今回確認した公式のページのどこにも書かれていない結果が出ました。
まず前提です。UNIQUE(ユニーク)、XLOOKUP(エックスルックアップ)、SORT(ソート)、FILTER(フィルター)。これらはどれも、動的配列と一緒に新しく入った関数で、Excel 2019には入っていません。@を付けた式や、うしろにシャープ記号を付けた式も同じで、この版には無い書き方です。ですから、どれを打っても同じように断られるはずだ、と考えるのがふつうだと思います。
ところが、実際にキーボードから打ってみたら違いました。同じ「この版に無い書き方」なのに、断られ方が3通りに分かれました。
1つ目は、セルに数式がそのまま入って #NAME? という表示になるもの。メッセージの窓は出ません。2つ目は、確定しようとした瞬間に「その関数は正しくありません。」というメッセージの窓が出て、セルには何も入らないままになるもの。=SORT(...) と =FILTER(...)、そして =@A1:A3 がこれでした。3つ目は、「この数式には問題があります。」という別の文面のメッセージが出るもので、これは =A1# でした。

測り方も書いておきます。画面に出したExcelを前面にしてから、キーボードで1つずつ打ち込み、Enterで確定しました。10通りすべてを、1つのブックの同じシートに、続けて打っています。途中でファイルを開き直したり、別のシートに移ったりはしていません。条件が変わらないようにするためです。
そして、いちばん最初に =SUM(1,2) を打って、セルの表示が 3 になることを確かめてから本番に入っています。キーボードの入力がちゃんとExcelに届いていることを先に確かめておかないと、何も入らなかったという結果が、単に打てていなかっただけになってしまうからです。この確認があるので、メッセージが出て何も入らなかったのは、入力が届かなかったせいではない、と言い切れます。
それに加えて、比べるための書き方を3種類まぜました。ひとつはこの版にもある関数(TEXTJOIN)、ひとつはでたらめな関数名(ZZTOPFUNC)、ひとつは明らかに壊れた数式(=A1++)です。新しい関数だけを打っていると、その断られ方が新しい関数に特有のものなのか、それともExcelがふだんから出しているものなのかが分かりません。比べるものを同じシートに置いておけば、その区別ができます。

同じシートに続けて打った10通りを、打った順に並べます。
| キーボードで打ったもの | どういうものか | Excel 2019で起きたこと |
|---|---|---|
=SUM(1,2) |
最初の確認用 (サム) |
セルに 3 と表示された |
=UNIQUE(A1:A3) |
この版に無い関数 (ユニーク) |
セルに入り、#NAME? と表示された |
=XLOOKUP(...) |
この版に無い関数 (エックスルックアップ) |
セルに入り、#NAME? と表示された |
=SORT(A1:A3) |
この版に無い関数 (ソート) |
「その関数は正しくありません。」 の窓が出て、セルは空のまま |
=FILTER(...) |
この版に無い関数 (フィルター) |
「その関数は正しくありません。」 の窓が出て、セルは空のまま |
=@A1:A3 |
この版に無い書き方 (アットマーク付き) |
「その関数は正しくありません。」 の窓が出て、セルは空のまま |
=A1# |
この版に無い書き方 (うしろにシャープ記号) |
「この数式には問題があります。」 の窓が出て、セルは空のまま |
=ZZTOPFUNC(A1:A3) |
比べるための でたらめな関数名 |
「この数式には問題があります。」 の窓が出て、セルは空のまま |
=A1++ |
比べるための 明らかに壊れた数式 |
「数式に入力エラーが見つかりました。」 で始まる別の窓が出た |
=TEXTJOIN(",",TRUE,A1:A3) |
比べるための この版にもある関数 |
ふつうに計算され、 りんご,みかん,りんご と返った |
この表でいちばん大事なのは、下の3行です。でたらめな関数名を打ったときの文面が、シャープ記号を付けたときとまったく同じでした。ですから「この数式には問題があります。」はスピル専用の案内ではなく、Excelが読み取れない書き方に対する一般的なメッセージだと考えられます。理由まで断言はできませんが、少なくともスピル固有のものではない、というところまでは言えます。
いっぽう、明らかに壊れた数式である =A1++ は、また別の窓でした。「数式に入力エラーが見つかりました。これを次のように修正しようとしています」という、直した形を提案してくる確認の窓です。壊れていれば何でも同じ文面になる、というわけでもありません。そして、この版にもある TEXTJOIN はふつうに計算されました。打鍵そのものはきちんと届いている、ということです。

ここで大事なことを書きます。なぜ断られ方が分かれるのか、その理由は分かっていません。今回確認した公式のページには、対応していない版でこれらを入力したときにメッセージの窓が出る、という記述はありませんでした。理由を推測して書くこともできますが、根拠のない説明をここに書いても読んでくださった方の役には立ちません。分かっているのは、当サイトの検証機で、同じシートに続けて打つと毎回こうなった、という事実だけです。
なお、公式ページにメッセージの窓の話がまったく無いわけではありません。@のページには、新しい版で配列計算と共通部分の両方に依存する数式を作ったときにダイアログが出る、という説明があります。ただしそれは新しい版での話であって、対応していない版で入力したときの話ではありません。今回出たものとは別のメッセージです。
プログラムから入れた場合は結果が違った
ここまでは、すべてキーボードで打った結果です。同じ日の少し前に、プログラムからExcelに数式を送り込む方法でも同じことを試しているので、そちらも載せておきます。読者のみなさんが実際にやるのはキーボードのほうなので、前の表とは分けて読んでください。
| プログラムから入れたもの | どういうものか | Excel 2019での結果 |
|---|---|---|
=SORT(...) / =FILTER(...) |
この版に無い関数 | 受け取り自体を拒否された |
=SORTBY(...) |
この版に無い関数 | 入り、#NAME? と表示された |
=RANDARRAY(2) |
この版に無い関数 | 入り、#NAME? と表示された |
=SEQUENCE(3) |
この版に無い関数 | 入り、#NAME? と表示された |
=ZZTOPFUNC(...) |
比べるための でたらめな関数名 |
入り、#NAME? と表示された |
=TEXTJOIN(...) |
比べるための この版にもある関数 |
正常に計算された |
この表の中だけで見ても、扱いが分かれています。でたらめな関数名は受け取られて #NAME? になるのに、SORTとFILTERは受け取り自体を断られました。SORTとFILTERについては、かっこの中に書く内容を変える、文字ではなく数値だけの列を対象にする、日本語環境向けの入れ方に変える、という3つの方向で、この2つに関わるものだけで7通り試しています。対照に使ったほかの関数も含めると全部で14通りです。7通りのどれでも断られ方は変わらなかったので、引数の書き方が悪かったから断られた、というわけではありません。
そして、ここが今回いちばん自分でも意外だったところです。でたらめな関数名は、キーボードで打つとメッセージの窓が出たのに、プログラムから入れると受け取られて #NAME? になりました。同じ書き方でも、入れ方が違えば結果が違う、ということです。この記事で経路をいちいち分けて書いているのは、そのためです。他所で見た説明と自分の画面が食い違うとき、実は入れ方が違っていた、ということが起こり得ます。
出たメッセージの文面で見分ける
実用のうえでは、この違いは意外に役に立ちます。ただし、窓が出たら必ず版のせい、とは言えません。でたらめな関数名でも窓は出るからです。文面ごとに整理すると、次のようになります。
| 画面に出たもの | 今回の測定で出た書き方 | まず疑うこと |
|---|---|---|
#NAME?(窓は出ない) |
UNIQUE・XLOOKUP | 関数名のつづり、 そのあとに版 |
| その関数は正しくありません。 | SORT・FILTER・=@A1:A3 |
お使いの版に無い 新しい書き方 |
| この数式には問題があります。 | =A1#・でたらめな関数名 |
Excelが読み取れない書き方。 つづりと記号を見直す |
| 数式に入力エラーが 見つかりました。 |
=A1++ |
記号の重なりなど、 数式の形の壊れ |
この表があると、直らない原因を探し回る時間がかなり減ると思います。とくに「その関数は正しくありません。」が出た場合は、何度打ち直しても入りません。打ち間違いを疑って粘る前に、版を疑ってください。
打ち間違いか版の違いかを切り分ける手順
関数が使えないのか、単に打ち方を間違えたのか。これを1分で切り分ける手順を書いておきます。当サイトが検証のときに実際に使った、較正のやり方をそのまま日常向けに直したものです。
- 空いているセルに
=SUM(1,2)と打ってEnterキーを押します。 - そのセルに 3 と表示されることを確かめます。
- 3 が出なければ、キーボードの入力方法か半角の設定に原因があります。
- 3 が出たら、隣のセルで問題の数式をもう一度打ちます。
- 「その関数は正しくありません。」と出た場合は、その書き方がお使いの版に入っていません。
- 別の文面の窓が出た場合は、前の表に当てはめて、つづりや記号を見直します。
#NAME?が出た場合は、まず関数名のつづりを1文字ずつ確かめます。- つづりが正しければ、次に説明する公式の原因を上から確かめます。
公式ページ「#NAME? エラーの修正方法」は、このエラーの原因を6つ挙げています。いちばん多い理由として『数式名に入力ミスがあるためです』と書かれていますが、ほかにも、定義されていない名前を数式で参照している、定義した名前のつづりが違う、文字を囲む二重引用符が抜けている、セル範囲の参照でコロンが抜けている、無効になっているアドインを必要とする関数を使っている、が挙げられています。
とくに初心者の方に多いのは、二重引用符の抜けと、コロンの抜けです。=A1A3 のようにコロンが抜けていると、Excelはそれを名前だと思って読もうとします。版のせいだと思って諦める前に、この2つを見てください。つづりも記号も正しいのに直らないときに、はじめて版を疑う。この順番が、いちばん無駄がありません。
新しい版で作られたファイルを開いたときに見える_xlfnという文字
ご自分では新しい関数を打っていないのに #NAME? が出た、という場合があります。その多くは、対応した版を使っている方から受け取ったファイルを、対応していない版で開いたときです。
この現象は公式にも説明があります。『@ 演算子を含む動的配列 Excel で数式を作成または編集した場合に、動的配列以前の Excel での、_xlfn.SINGLE() として表示されることがあります。』見慣れない _xlfn という文字が数式の中に紛れ込むのは、そのためです。この形になった数式は、対応していない版では計算できず、エラーの表示になります。
ここで、当サイトの実測も正直に書いておきます。検証機で自分で打った =UNIQUE(A1:A3) を、いったん保存してから開き直してみました。結果は =UNIQUE(A1:A3) のままで、_xlfn は付いていませんでした。表示は #NAME? のままです。
この2つは矛盾していません。公式が説明しているのは、新しい版で作られた数式を古い版で開いた場合の話です。当サイトが測ったのは、古い版で作って古い版で開き直した場合です。条件が違うので、結果も違います。ただ、この違いから読者のみなさんに役立つ見分けが1つ出てきます。数式の中に _xlfn が見えたら、そのファイルは新しい版で作られたものだ、という手がかりになります。自分で打った覚えのない文字が入っていたら、出どころを疑ってください。
そして、エラーが出ているセルを、そのまま上書き保存してしまうのは避けたほうが安全です。古い版で編集して保存すると、元の数式の形が変わってしまうことがあります。受け取ったファイルにエラーが出ていたら、まず別名で保存して原本を残し、作った方に「こちらは古い版なので、この列だけ計算結果の値にして送ってもらえますか」とお願いするのが確実です。数式のままでなく値になっていれば、版の違いで計算できないという事態は避けられます。
- 先に別名保存で原本を残してから触ります。
- 相手に、その列だけ値にしたものを送り直してもらうのが確実です。
この記事で実機で確かめたことと確かめられなかったこと
読んでくださった方が、どこまで信じてよいのかを判断できるように、線引きを表にしておきます。当サイトの検証機は動的配列に対応していないExcel 2019なので、対応した版の動きは自分の目で見ることができていません。実測のうち、キーボードで打ったものとプログラムから入れたものも分けて書きます。
| この記事に書いたこと | どうやって分かったことか |
|---|---|
| 1つのセルに範囲を入れると 同じ行の値が1つ返ること |
実機で確認(プログラムから入力)。 仕組み自体は公式にも記載あり |
| @付きの式が確定できず、 その関数は正しくありません。と出ること |
実機で確認(キーボードで手入力) |
| シャープ記号の式が確定できず、 別の文面のメッセージが出ること |
実機で確認(キーボードで手入力。 A1は文字が入ったふつうのセル) |
| その文面が、でたらめな関数名 でも同じだったこと |
実機で確認(キーボードで手入力。 比べるために打った対照) |
| 同じ書き方でも、キーボードと プログラムで結果が違ったこと |
実機で確認(両方の経路で確認) |
| こぼれた結果のセルに シャープ記号を付けた場合 |
実機では試せていない。 この版ではこぼれた結果が作れない |
| Ctrl+Shift+Enterの配列数式が 3つのセルに入ること |
実機で確認(キーボードで手入力) |
| SORTとFILTERだけ ほかと違う断られ方をすること |
実機で確認(キーボードで手入力)。 公式ページには記載なし |
保存して開き直しても_xlfn が付かなかったこと |
実機で確認(古い版で作り、 古い版で開き直した場合) |
新しい版で作られた数式が_xlfn.SINGLE() として見えること |
実機では試せていない。 公式の説明として記載 |
| 対応した版で実際にこぼれる様子 | 実機では試せていない。 公式の説明として記載 |
| @を付けて1つに戻す操作 | 実機では試せていない。 公式の説明として記載 |
| シャープ記号が対応した版で 働く様子 |
実機では試せていない。 公式の説明として記載 |
| #SPILL!を実際に出して直す手順 | 実機では試せていない。 公式ページの記述の整理 |
| 配列数式が中かっこで 表示されること |
実機で確認(キーボードで手入力。 数式バーに {=A1:A3} と表示) |
| まとめてオフにする設定が 無いこと |
公式の案内に見当たらない、 というところまで |
| 見た目が空でもスペースが 入っていることがある |
実機では測っていない。 確かめ方だけを案内 |
試せていないところを、あたかも試したように書くことはしませんでした。対応した版をお使いで、この記事の@の手順を試された方が、思ったとおりにならなかったという場合は、遠慮なく教えていただければと思います。実際の画面で起きたことのほうが、いつも正しいからです。
スピルの解除でよく聞かれること
設定画面からスピルを完全にオフにできますか
今回確認した公式の案内には、まとめてオフにする設定は見当たりませんでした。じゃまな数式ごとに@を付けるか、昔ながらの配列数式で入れ直すか、という対処になります。
スピルが起きないのですが故障でしょうか
故障ではありません。Excel 2019など動的配列に対応していない版は、スピルの仕組みを持っていません。当サイトの実機でも、範囲を入れた結果が1つしか返らないことを確認しています。
買い切り版のExcelなら必ずスピルは起きませんか
いいえ。買い切りでもExcel 2021やExcel 2024は動的配列に対応しているので、スピルが起きます。買い切りかどうかではなく、記事の最初の見分け方で判断してください。
#SPILL!と#NAME?は何が違いますか
#SPILL!はこぼれる先がふさがっているという合図で、#NAME?はその名前を認識できないという合図です。前者は場所の問題、後者は名前か記号か版の問題です。
自分のExcelがどの版か分からないときはどうしますか
[ファイル]から[アカウント]を開くとバージョン情報を確認できます。ただ、記事の最初にある1つのセルに範囲を入れる見分け方のほうが、実際の動きで判断できるぶん確実です。
2019でFILTERのような絞り込みをする方法はありますか
関数としては入っていませんが、データの絞り込み自体はオートフィルター機能で行えます。関数で自動的に別表を作りたい場合は、対応した版が必要になります。
会社と自宅で同じファイルの見え方が違うのはなぜですか
片方が対応した版、もう片方が対応していない版という組み合わせだと起こります。新しい関数を含む数式は、対応していない版でエラー表示になります。値にして受け渡すと行き違いが減ります。
スピルした結果の一部だけを消せないのはなぜですか
こぼれた範囲は1つの数式の結果なので、途中だけを消すことはできません。公式にも、編集できるのは最初のセルだけと書かれています。消すときは左上のセルごと消します。
スピルを止めると計算が遅くなったりしませんか
速さの話ではなく、結果を1つに絞るか広げるかの違いです。ただ、昔ながらの配列数式は範囲を自分で決める分、行が増えたときの直し忘れに注意が要ります。
スピルは止めるより、起きるかどうかを先に見分けるほうが早い
長くなりましたので、要点だけもう一度まとめます。スピルを解除したいと思ったら、まず1つのセルに =A1:A3 を入れてEnterを押します。下までこぼれた方は、じゃまな数式に@を1文字足すか、Ctrl+Shift+Enterの昔ながらの入れ方で範囲を固定します。1つしか返らなかった方は、お使いのExcelにスピルの仕組みが無いので、何もしなくて構いません。
そして、当サイトの実機で分かったこととして、動的配列に対応していないExcel 2019では、対応した版にしかない書き方を打ったときの断られ方が3通りに分かれます。#NAME? が出るもの、「その関数は正しくありません。」と出るもの、「この数式には問題があります。」と出るもの。理由は分かっていませんが、文面ごとに疑うところを変えられる、という使い方はできます。とくに「その関数は正しくありません。」は、今回の測定では版に無い新しい書き方でしか出ませんでした。いっぽう「この数式には問題があります。」は、でたらめな関数名でも同じ文面が出たので、つづりや記号の見直しから入るのが早いです。この見分けを知っているだけで、直らない原因を探し回る時間はかなり減ると思います。
数式バーに@を入れたはずなのに表示が元に戻ってしまう、受け取ったファイルを開いたら数式の中に見慣れない文字が混ざっていてどこを直せばよいのか分からない、こぼれた結果を消そうとすると消せないマスがある。こういうときは、画面に今どんな文字が出ているかを教えていただくのがいちばんの近道です。数式バーに見えている文字をそのまま書き写していただくか、画面の写真を1枚送っていただければ、どこを直せばよいのかを一緒に確かめるところからお手伝いします。Excelの版が新しいのか古いのかが分からない状態でも大丈夫です。そこを見分けるところから始めます。
出典・引用サイト
- 動的配列数式とスピル配列の動作(Microsoft サポート)
- 演算子の共通部分: @(Microsoft サポート)
- #SPILL を修正する方法! を修正する(Microsoft サポート)
- スピルされた範囲演算子(Microsoft サポート)
- #NAME? エラーの修正方法(Microsoft サポート)
最終確認日 2026年7月27日/記事作成 uri uri


コメント