=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するのがポイントです。
見た目を整えつつ、動的なデータ処理も実現できる便利なテクニックです。