QUERY関数で空白列を自由に挟む方法|スプレッドシートでレイアウトを整える

Googleスプレッドシートでデータを整理する際、QUERY関数で空白列を挟みたいことはありませんか?今回は、基本の方法から、応用テクニックまで、わかりやすく解説します。

QUERY関数だけでは空白列は作れない

まず、知っておきたい基本知識として、
QUERY関数だけでは空白列(ダミー列)を直接SELECTできない仕様になっています。

そのため、次のような工夫が必要になります。

  • {}波括弧で列をまとめる
  • ARRAYFORMULA(REPT("", ROW()))でダミー列(空白列)を作る

この組み合わせがカギになります。

基本パターン|空白列を1列だけ挟む

例えば、データが

  • A列:ID
  • B列:名前
  • C列:金額

という構成だった場合、
「IDと名前の間に空白列を挟みたい」ときは、こう書きます。

=QUERY({
A2:A,
ARRAYFORMULA(REPT("", ROW(A2:A))),
B2:B,
C2:C
},
"SELECT Col1, Col2, Col3, Col4 WHERE Col1 IS NOT NULL"
)

✅ ポイント

  • {}で列を横に並べることで仮想的な1つの表を作る
  • 空白列は ARRAYFORMULA(REPT("", ROW())) で作成

複数の空白列を挟みたい場合

空白列を2列連続で入れたい場合は、空白列を2回書けばOKです!

=QUERY({
A2:A,
ARRAYFORMULA(REPT("", ROW(A2:A))),
ARRAYFORMULA(REPT("", ROW(A2:A))),
B2:B,
C2:C
},
"SELECT Col1, Col2, Col3, Col4, Col5, Col6 WHERE Col1 IS NOT NULL"
)

✅ このように、空白列を何回でも挿入できるのがメリットです!

空白列を好きな場所に入れ替えたい場合

仮に、
「名前と金額の間にだけ空白列を挟みたい」
という場合は、列の並び順を工夫します。

=QUERY({
A2:A,
B2:B,
ARRAYFORMULA(REPT("", ROW(A2:A))),
C2:C
},
"SELECT Col1, Col2, Col3, Col4 WHERE Col1 IS NOT NULL"
)

✅ 空白列を好きな位置に挿入・移動できるので、
レイアウトの自由度がかなり高くなります。

空白列を自由に挟む作成例

この機能を活用することで、CSV形式で出力する際の見やすさや、インポート先システムに合わせたレイアウト調整が可能になります。

元の項目空白列の挿入位置
管理IDの後商品名との区切り用
入荷単価の後在庫数との区切り用
最後尾登録日を追加するための余白(またはプレースホルダー)
=QUERY({
  '在庫リスト2024'!A2:A, 
  ARRAYFORMULA(REPT("", ROW('在庫リスト2024'!A2:A))), 
  '在庫リスト2024'!B2:B, 
  '在庫リスト2024'!C2:C,
  '在庫リスト2024'!D2:D,
  '在庫リスト2024'!E2:E,
  ARRAYFORMULA(REPT("", ROW('在庫リスト2024'!A2:A))),
  '在庫リスト2024'!F2:F,
  '在庫リスト2024'!G2:G
},
"SELECT Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9 WHERE Col1 IS NOT NULL"
)

このように視認性・レイアウト・整合性を意識した構成にすることで、
実務でのCSV出力・印刷・データ連携がスムーズになります。

列数が多い場合のコツ

もしも列が10列以上など多い場合、
手作業でARRAYFORMULA(REPT("", ROW()))を書くのは大変です。

そのときは、

  • スプレッドシートの機能で「列の挿入」を使う
  • または、スクリプト(Apps Script)で自動化する

こういった方法も検討するとよいでしょう。

注意点|空白列も「カウントされる」

空白列もCol○番目としてカウントされます。
例えば、ダミー列を2個入れると、SELECT句も増やさないとエラーになります。

エラー対策として、

  • SELECT句のCol番号を確認する
  • 使わない列は明示的にスキップする(例:”SELECT Col1, Col3, Col5″)

このあたりも意識しましょう。


まとめ

目的解決策
空白列を作りたいARRAYFORMULA(REPT(“”, ROW()))を使う
自由な位置に空白列を挿入したい{}で列順を自由に並べる
多くの空白列が必要な場合スクリプトで自動化も検討

GoogleスプレッドシートのQUERY関数では、ARRAYFORMULA(REPT("", ROW()))を使うことで空白列を自由に挿入できます。
複数列や任意の位置に空白列を入れるには、{}で列を並べ替えてからSELECTするのがポイントです。
見た目を整えつつ、動的なデータ処理も実現できる便利なテクニックです。