QUERY関数で「配列結果は自動的に展開されませんでした」というエラーが出たときの対処法

GoogleスプレッドシートでQUERY関数を使っていたら、急にこんなエラーが出てきたことはありませんか?

配列結果は自動的に展開されませんでした。行(1)を挿入してください。

一見すると意味がわかりづらいエラーメッセージですが、これは出力先の空きスペースが足りないという単純な原因で起こります。※「行()」は人によって数値違います。

目次

結論!エラーを解消するには「空白行を追加」してください

このエラーの最も手っ取り早い解決法は、
QUERY関数の結果が表示される範囲の下に、十分な空白行を追加することです。

一番下に1000行追加したことで解決しました

このエラーが出る場合、QUERY関数の出力先の下に十分な空白行がないことが原因です。
つまり、スプレッドシート側が「展開するスペースが足りません」と訴えているのです。

私の場合は、一番下に1000行追加することでエラーが解消しました。

▼行を追加する方法

最低でも100~1000行程度は余裕を持たせて追加するのがおすすめです

スプレッドシート下部の行番号をスクロールして一番下へ

「一番下に1000行追加」ボタンをクリック

シート一番下に表示あります

なぜこのエラーが起きるのか?

このエラーの本質は、QUERY関数が返すデータ(=配列)の展開先に、十分な空白スペースがないことです。

たとえば、1000件のデータを返すQUERY関数を使っても、出力先に空きが20行しかなければ、スプレッドシートは「展開できない」と判断してしまいます。

▼ よくある原因

原因具体例
表示領域が不足関数を入れたセルの下にデータや数式がある/空白行が足りない
結果が多すぎるもとのデータが大量(数千行)で、QUERY関数の出力も長くなる
他関数との競合出力先の周囲に ARRAYFORMULASPARKLINE がある場合など

ほかにもある!実用的な3つの対応策

エラーを解消するには「空白行を追加」が基本ですが、状況に応じて以下のような対策も有効です。

① 出力先セルの周囲をすべてクリアする

すでに入力済みの値や関数が残っていると、QUERYの配列が展開できません。
出力先のセル範囲を完全に空にするだけで改善することがあります。

② 出力先を別シートや遠くの行に変更する

もしスプレッドシートの途中でQUERYを使っている場合、専用シートに出力先を移すことで競合リスクを避けられます。

=QUERY(データシート!A1:D, "SELECT ...", 1)

ARRAY_CONSTRAINで出力を制限する(必要に応じて)

表示したい件数が限られている場合は、ARRAY_CONSTRAIN関数で意図的に行数・列数を制限してあげましょう。

=ARRAY_CONSTRAIN(QUERY(A1:D, "SELECT B, C"), 100, 2)

補足:QUERY関数の出力は「配列」です

QUERY関数は、単一セルではなく表(配列)としてデータを返す関数です。
そのため、展開先に「置くスペース」がないと、スプレッドシートは自動で配置できず、今回のようなエラーを出してしまいます。

この仕組みは UNIQUEFILTER などの関数にも共通しています。

今後の予防策

予防方法メリット
出力先の周囲にスペースを確保する展開エラーの予防になる
QUERY専用のシートを設ける他の処理との干渉を避けられる
結果が多くなりそうな関数には注意動的なデータ拡張にも対応しやすくなる

まとめ:エラーが出たらまずは「空白を増やす」!

QUERY関数で「配列結果は自動的に展開されませんでした」エラーが出たら、空白行が足りていない可能性が高いです。

まずは落ち着いて、出力先の下に1000行ほどのスペースを確保してみましょう。
それでも解決しない場合は、出力先を別シートに変える/他のデータを削除するなどを試してみてください。

✅この記事が参考になったら、ぜひブックマーク&シェアをお願いします!

関連記事もチェック!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

1994年生まれ。福岡出身、福岡育ち、福岡在住。
エンジニアを数年経験し、現在は事業会社でデータ分析業務に従事しています。
好きな物:猫、ラーメン
取得資格:基本情報技術者、G検定、統計検定2級

目次