=QUERY({
'在庫リスト2024'!A2:F;
'在庫リスト2025'!A2:F
}, "where Col1 is not null", 0)
ただし、今回の場合はそれぞれのシートの列の項目がずれているため、この結合の方法を使うと別の項目がずれてしまいます。
ポイント
0
:ヘッダー行なし(データの1行目が列名でない場合)
{…; …}
:縦に結合(UNION ALL的な処理)
QUERY(…)
:条件指定や並び替え、抽出などをSQLライクに
"where Col1 is not null"
:1列目が空でない行のみ抽出
【方法2】列構成が違う場合 → 適切に列数を合わせて結合
たとえば、
- 「在庫リスト2024」:管理ID 商品名 種別 メーカー 入荷単価(円) 在庫数 最終入荷日(8列)
- 「在庫リスト2025」:商品コード 商品名 カテゴリ 単価(円) 在庫数 登録日 最終入庫日(8列)
これらをうまく結合したい場合は、このようにします。
=QUERY({
{
'在庫リスト2024'!A2:F,
ARRAYFORMULA(REPT("", ROW('在庫リスト2024'!A2:A))),
'在庫リスト2024'!G2:G
};
{
'在庫リスト2025'!A2:C,
ARRAYFORMULA(REPT("", ROW('在庫リスト2025'!A2:A))),
'在庫リスト2025'!D2:G
}
},
"where Col1 is not null"
)
そうすると、それぞれの列で必要な項目が結合されて、ひとつのシートとなります。
【補足】IMPORTRANGE を使って別ファイルも統合可能
=QUERY({
IMPORTRANGE("ファイルID1", "在庫リスト2024!A2:F");
IMPORTRANGE("ファイルID2", "在庫リスト2025!A2:F")
}, "select * where Col1 is not null", 0)
IMPORTRANGEは、スプレッドシートのファイルが異なっている場合に使える方法です。
【TIPS】QUERY関数を使った結合の整理表
方法 | 説明 |
---|
{範囲1;範囲2} | 縦方向の結合(行追加) |
{範囲1, 範囲2} | 横方向の結合(列追加) |
QUERY(…,"where …") | 条件付き抽出 |
QUERY(…,"group by") | 集計 |
QUERY(…,"pivot") | ピボットテーブルのように変換 |
まとめ
- 「QUERY + {} + セミコロン ;」で複数シートを統合
- 列が異なる場合は
ARRAYFORMULA(REPT("", 行数))
で列数調整
- 集計・抽出・並び替えも
QUERY
で一気に可能
結合する際に列の数を合わせることがポイントです。