GoogleスプレッドシートでQUERY関数を使っていたら、急にこんなエラーが出てきたことはありませんか?
配列結果は自動的に展開されませんでした。行(1)を挿入してください。
一見すると意味がわかりづらいエラーメッセージですが、これは出力先の空きスペースが足りないという単純な原因で起こります。※「行()」は人によって数値違います。
結論!エラーを解消するには「空白行を追加」してください
このエラーの最も手っ取り早い解決法は、
QUERY関数の結果が表示される範囲の下に、十分な空白行を追加することです。
✅ 一番下に1000行追加したことで解決しました
このエラーが出る場合、QUERY関数の出力先の下に十分な空白行がないことが原因です。
つまり、スプレッドシート側が「展開するスペースが足りません」と訴えているのです。
私の場合は、一番下に1000行追加することでエラーが解消しました。
▼行を追加する方法
最低でも100~1000行程度は余裕を持たせて追加するのがおすすめです
スプレッドシート下部の行番号をスクロールして一番下へ
「一番下に1000行追加」ボタンをクリック

なぜこのエラーが起きるのか?
このエラーの本質は、QUERY関数が返すデータ(=配列)の展開先に、十分な空白スペースがないことです。
たとえば、1000件のデータを返すQUERY関数を使っても、出力先に空きが20行しかなければ、スプレッドシートは「展開できない」と判断してしまいます。
▼ よくある原因
原因 | 具体例 |
---|---|
表示領域が不足 | 関数を入れたセルの下にデータや数式がある/空白行が足りない |
結果が多すぎる | もとのデータが大量(数千行)で、QUERY関数の出力も長くなる |
他関数との競合 | 出力先の周囲に ARRAYFORMULA や SPARKLINE がある場合など |
ほかにもある!実用的な3つの対応策
エラーを解消するには「空白行を追加」が基本ですが、状況に応じて以下のような対策も有効です。
① 出力先セルの周囲をすべてクリアする
すでに入力済みの値や関数が残っていると、QUERYの配列が展開できません。
出力先のセル範囲を完全に空にするだけで改善することがあります。
② 出力先を別シートや遠くの行に変更する
もしスプレッドシートの途中でQUERYを使っている場合、専用シートに出力先を移すことで競合リスクを避けられます。
=QUERY(データシート!A1:D, "SELECT ...", 1)
③ ARRAY_CONSTRAIN
で出力を制限する(必要に応じて)
表示したい件数が限られている場合は、ARRAY_CONSTRAIN
関数で意図的に行数・列数を制限してあげましょう。
=ARRAY_CONSTRAIN(QUERY(A1:D, "SELECT B, C"), 100, 2)
補足:QUERY関数の出力は「配列」です
QUERY
関数は、単一セルではなく表(配列)としてデータを返す関数です。
そのため、展開先に「置くスペース」がないと、スプレッドシートは自動で配置できず、今回のようなエラーを出してしまいます。
この仕組みは UNIQUE
や FILTER
などの関数にも共通しています。
今後の予防策
予防方法 | メリット |
---|---|
出力先の周囲にスペースを確保する | 展開エラーの予防になる |
QUERY専用のシートを設ける | 他の処理との干渉を避けられる |
結果が多くなりそうな関数には注意 | 動的なデータ拡張にも対応しやすくなる |
まとめ:エラーが出たらまずは「空白を増やす」!
QUERY関数で「配列結果は自動的に展開されませんでした」エラーが出たら、空白行が足りていない可能性が高いです。
まずは落ち着いて、出力先の下に1000行ほどのスペースを確保してみましょう。
それでも解決しない場合は、出力先を別シートに変える/他のデータを削除するなどを試してみてください。
✅この記事が参考になったら、ぜひブックマーク&シェアをお願いします!
関連記事もチェック!

