この記事は、#SPILLエラーのすべての原因と、Excel365でそれらを修正するための解決策を理解するのに役立ちます。
#SPILL!は新しい種類のExcelエラーであり、主に、スピル範囲で出力を表示しようとして複数の計算結果を生成する数式が、その範囲にすでに他のデータが含まれている場合に発生します。
ブロッキングデータは、テキスト値、結合されたセル、プレーンスペース文字、または結果を返すのに十分な場所がない場合でも、何でもかまいません。解決策は簡単です。ブロックしているデータの範囲をクリアするか、データを含まない空のセル配列を選択します。
動的配列数式は結果を複数のセルまたは配列に出力する数式であるため、通常、動的配列数式を計算するときにスピルエラーが発生します。詳細を調べて、Excelでこのエラーが発生する原因とその解決方法を理解しましょう。
流出エラーの原因は何ですか?
2018年に動的配列がリリースされて以来、Excelの数式は一度に複数の値を処理し、複数のセルで結果を返すことができます。動的配列はサイズ変更可能な配列であり、単一のセルに入力された数式に基づいて、数式がワークシート上のセルの範囲に複数の結果を返すことができます。
動的配列数式が複数の結果を返す場合、これらの結果は自動的に隣接するセルに波及します。この動作は、Excelでは「スピル」と呼ばれます。そして、結果が流出するセルの範囲は「流出範囲」と呼ばれます。流出範囲は、ソース値に基づいて自動的に拡大または縮小します。
数式がスピル範囲を複数の結果で埋めようとしているが、その範囲の何かによってブロックされている場合、#SPILLエラーが発生します。
Excelには、動的配列機能を使用して問題を解決する9つの関数があります。これらには次のものが含まれます。
- 順序
- フィルター
- 転置
- 選別
- 並び替え
- RANDARRAY
- 個性的
- XLOOKUP
- XMATCH
動的配列数式は「Excel365」でのみ使用可能であり、現在、オフラインのExcelソフトウェア(Microsoft Excel 2016、2019など)ではサポートされていません。
スピルエラーは、データの妨害によって引き起こされるだけでなく、#Spillエラーが発生する理由はいくつかあります。 #SPILLに遭遇する可能性のあるさまざまな状況を探りましょう!エラーとそれらを修正する方法。
流出範囲は空白ではありません
スピルエラーの主な原因の1つは、スピル範囲が空でないことです。たとえば、10個の結果を表示しようとしているが、流出領域のいずれかのセルにデータがある場合、数式は#SPILL!を返します。エラー。
例1:
以下の例では、セルC2にTRANSPOSE関数を入力して、セルの垂直範囲(B2:B5)を水平範囲(C2:F2)に変換しています。列を行に切り替える代わりに、Excelは#SPILLを表示します。エラー。
また、数式セルをクリックすると、以下に示すように結果を表示するために必要な流出領域/範囲(C2:F2)を示す青い破線の境界線が表示されます。また、感嘆符が付いた黄色の警告サインが表示されます。
エラーの背後にある理由を理解するには、エラーの横にある警告アイコンをクリックして、灰色で強調表示された最初の行のメッセージを確認してください。ご覧のとおり、ここでは「流出範囲は空白ではありません」と表示されています。
ここでの問題は、流出範囲D2およびE2のセルにテキスト文字(空ではない)があるため、エラーが発生することです。
解決:
解決策は簡単です。流出範囲にあるデータをクリアする(移動または削除する)か、数式を障害物のない別の場所に移動します。
障害物を削除または移動するとすぐに、Excelは数式の結果をセルに自動的に入力します。ここで、D2とE2のテキストをクリアすると、数式は意図したとおりに列を行に転置します。
例2:
次の例では、流出範囲は空に見えますが、数式には流出が表示されます。エラー。これは、流出が実際には空ではなく、セルの1つに非表示のスペース文字があるためです。
空のセルのように見えるものに隠れているスペース文字やその他の非表示の文字を見つけるのは困難です。不要なデータを含むそのようなセルを見つけるには、エラーフローティ(警告サイン)をクリックし、メニューから[妨害セルの選択]を選択すると、妨害データを含むセルに移動します。
ご覧のとおり、下のスクリーンショットでは、セルE2に2つのスペース文字があります。これらのデータをクリアすると、適切な出力が得られます。
非表示の文字は、セルの塗りつぶしの色と同じフォントの色でフォーマットされたテキスト、または数値コード;;;でカスタムフォーマットされたセルの値である場合があります。セル値を;;;でカスタムフォーマットすると、フォントの色やセルの色に関係なく、そのセル内のすべてのものが非表示になります。
流出範囲には結合されたセルが含まれます
時々、#SPILL!スピル範囲にマージされたセルが含まれている場合、エラーが発生します。動的配列数式は、結合されたセルでは機能しません。これを修正するには、スピル範囲内のセルを結合解除するか、結合されたセルがない別の範囲に数式を移動するだけです。
次の例では、スピル範囲が空(C2:CC8)であっても、数式はスピルエラーを返します。これは、セルC4とC5がマージされているためです。
結合されたセルがエラーを受け取る理由であることを確認するには、をクリックします。警告サインと原因の確認–「流出範囲がセルをマージしました」。
解決:
セルを結合解除するには、結合されたセルを選択し、[ホーム]タブで、[結合と中央揃え]ボタンをクリックして、[セルの結合解除]を選択します。
大きなスプレッドシートで結合されたセルを見つけるのが難しい場合は、警告サインメニューから[妨害セルの選択]オプションをクリックして、結合されたセルにジャンプします。
表の流出範囲
こぼれた配列数式は、Excelテーブルではサポートされていません。動的配列数式は、単一の個別のセルにのみ入力する必要があります。テーブルにスピルされた配列数式を入力した場合、またはスピル領域がテーブルに分類された場合、スピルエラーが発生します。これが発生した場合は、テーブルを通常の範囲に変換するか、数式をテーブルの外に移動してみてください。
たとえば、Excelテーブルに次の流出範囲の数式を入力すると、数式セルだけでなく、テーブルのすべてのセルで流出エラーが発生します。これは、Excelがテーブルに入力された数式をテーブルの列のすべてのセルに自動的にコピーするためです。
また、数式が結果をテーブルにスピルしようとすると、スピルエラーが発生します。以下のスクリーンショットでは、流出領域が既存のテーブル内にあるため、流出エラーが発生します。
このエラーの背後にある原因を確認するには、警告サインをクリックして、エラーの理由を確認してください–「テーブルの流出範囲」
解決:
エラーを修正するには、Excelテーブルを範囲に戻す必要があります。これを行うには、テーブル内の任意の場所を右クリックし、[テーブル]をクリックして、[範囲に変換]オプションを選択します。または、テーブル内の任意の場所を左クリックして、[テーブルデザイン]タブに移動し、[範囲に変換]オプションを選択することもできます。
流出範囲は不明です
Excelがスピルされた配列のサイズを確立できなかった場合、スピルエラーがトリガーされます。数式を使用すると、各計算パス間で動的配列のサイズを変更できる場合があります。動的配列のサイズが計算パス中に変化し続け、バランスが取れていない場合、#SPILLが発生します。エラー。
このタイプのスピルエラーは通常、RAND、RANDARRAY、RANDBETWEEN、OFFSET、およびINDIRECT関数などの揮発性関数を使用している場合にトリガーされます。
たとえば、セルB3で次の数式を使用すると、スピルエラーが発生します。
= SEQUENCE(RANDBETWEEN(1、500))
この例では、RANDBETWEEN関数は、数値1から500までのランダムな整数を返し、その出力は継続的に変化しています。また、SEQUENCE関数は、スピル配列で生成する値の数を認識していません。したがって、#SPILLエラー。
警告サイン「流出範囲は不明」をクリックして、エラーの原因を確認することもできます。
解決:
この数式のエラーを修正するには、計算に別の数式を使用するしかありません。
流出範囲が大きすぎる
ワークシートが処理するには大きすぎるこぼれた範囲を出力する数式を実行したり、ワークシートの端を超えて拡張したりする場合があります。それが起こるとき、あなたは#SPILLを得るかもしれません!エラー。この問題を修正するには、列全体ではなく特定の範囲または1つのセルを参照するか、「@」文字を使用して暗黙的な共通部分を有効にしてみてください。
以下の例では、列Aの売上高の20%を計算し、結果を列Bに返そうとしていますが、代わりにスピルエラーが発生します。
B3の式は、A3の値の20%を計算し、次にA4の値の20%を計算します。 100万を超える結果(1,048,576)が生成され、セルB3から始まる列Bにすべてが表示されますが、ワークシートの最後に到達します。すべての出力を表示するのに十分なスペースがないため、#SPILLエラーが発生します。
ご覧のとおり、このエラーの原因は–「流出範囲が大きすぎます」です。
ソリューション:
この問題を解決するには、関連する範囲または単一セル参照で列全体を変更するか、@演算子を追加して暗黙的な共通部分を実行してみてください。
修正1:列全体ではなく、範囲を参照してみることができます。ここでは、数式の範囲A:A全体をA3:A11に変更すると、数式によって範囲に結果が自動的に入力されます。
修正2: 列全体を同じ行のセル参照のみに置き換え(A3)、塗りつぶしハンドルを使用して数式を範囲内にコピーします。
修正3: 参照の前に@演算子を追加して、暗黙的な共通部分を実行することもできます。これにより、数式セルにのみ出力が表示されます。
次に、数式をセルB3から残りの範囲にコピーします。
ノート: こぼれた数式を編集しているときは、こぼれた領域/範囲の最初のセルのみを編集できます。流出範囲の他のセルで数式を確認できますが、灰色で表示され、更新できません。
メモリ不足
流出した配列数式を実行してExcelのメモリが不足すると、#SPILLエラーが発生する可能性があります。そのような状況では、より小さな配列または範囲を参照してみてください。
認識されない/フォールバック
Excelがエラーの原因を認識しない、または調整できない場合でも、スピルエラーが発生する可能性があります。このような場合は、数式を再確認し、関数のすべてのパラメーターが正しいことを確認してください。
これで、#SPILLのすべての原因と解決策がわかりました。 Excel365のエラー。