Googleスプレッドシートを使って業務の効率化を目指す方にとって、「複数シートにまたがったデータを1つにまとめたい」というニーズは多いです。この記事では、QUERY関数と波括弧 {}
を組み合わせて、複数の在庫シートをひとつの「在庫リスト」シートにまとめる方法をステップ付きで解説します。
さらに、列構成が違うシートを結合するテクニックや、別ファイルの統合方法もご紹介します。
複数の在庫シートを1つに統合したいケース
例えば以下のような状況を想定してみましょう。
- 「在庫リスト2024」シート:管理ID 商品名 種別 メーカー 入荷単価(円) 在庫数 最終入荷日など
- 「在庫リスト2025」シート:商品コード 商品名 カテゴリ 単価(円) 在庫数 登録日など


これらのシートをまとめて、「在庫リスト」シートに統合表示したいというのが今回の目的です。
QUERY関数+ {範囲1; 範囲2}
を使ったシンプルな統合方法
列構成が同じであれば、非常にシンプルな書き方で統合できます。
=QUERY({
'在庫リスト2024'!A2:C;
'在庫リスト2025'!A2:C
}, "where Col1 is not null", 0)

解説
{…; …}
:縦方向にデータを結合する(UNION ALLのイメージ)QUERY(...)
:SQLライクな構文で並び替え・抽出・フィルタリングが可能"where Col1 is not null"
:1列目(商品名など)が空白でない行のみを抽出0
:ヘッダーなしデータを扱う指定
列構成が異なる場合の対処法
「2024年」と「2025年」の在庫シートで、列数が異なるケースもあります。
このような場合は、不足している列に空白を埋めて列数を揃えることが重要です。
=QUERY({
{'在庫リスト2024'!A2:F, ARRAYFORMULA(REPT("", ROW('在庫リスト2024'!A2:A)))};
{ARRAYFORMULA(REPT("", ROW('在庫リスト2025'!A2:A))), '在庫リスト2025'!A2:C}
}, "where Col1 is not null", 0)
ポイント
ARRAYFORMULA(REPT("", ROW(...)))
:不足する列数分、空の列を挿入- 同じ列数にしてから
{…; …}
で縦に結合
IMPORTRANGE関数で別ファイルの在庫データも統合
別のスプレッドシートファイルからもデータを取り込んで統合したい場合は、IMPORTRANGE
関数が便利です。
=QUERY({
IMPORTRANGE("ファイルID1", "在庫リスト2024!A2:F");
IMPORTRANGE("ファイルID2", "在庫リスト2025!A2:F")
}, "select * where Col1 is not null", 0)
ファイルID
はGoogleスプレッドシートのURLの一部を指定- 初回使用時は「アクセスを許可」する操作が必要です
QUERY関数によるデータ統合の便利な使い分け
方法 | 説明 |
---|---|
{範囲1; 範囲2} | 縦方向の結合(行の追加) |
{範囲1, 範囲2} | 横方向の結合(列の追加) |
QUERY(..., "where ...") | 条件抽出 |
QUERY(..., "group by") | 集計処理 |
QUERY(..., "pivot") | ピボット集計 |
まとめ
QUERY
関数と{...}
の組み合わせで、複数シートのデータを簡単に統合可能- 列数が異なる場合は、
ARRAYFORMULA
+REPT
で空白列を調整 IMPORTRANGE
を使えば、別ファイルの在庫データも統合可能
在庫データを一元管理することで、業務効率は格段に向上します。ぜひ、GoogleスプレッドシートのQUERY関数を活用してみてください。