QUERY関数で複数の範囲・シートを結合する方法【スプレッドシート】
本記事ではスプレッドシートのQUERY関数で複数の範囲・シートを結合して1つにまとめる方法を解説していきます。
QUERY関数について詳しく知りたい方は、こちらの記事からチェックしてみてください。
複数の範囲をQUERY関数で結合する方法
まずは複数の範囲を結合する方法をご紹介します。
7月データと8月データを1つにまとめる
QUERY関数の範囲を波カッコで囲む
まずは解答例です。
=QUERY({B5:H14;J5:P14},”select *”,false)
QUERY関数の範囲指定の書き方が通常と異なりますね。
複数の範囲を結合する場合は、「{}(波カッコ)」で範囲全体を囲み、範囲と範囲を「;(セミコロン)」で繋ぎます。
複数範囲を結合する場合は「Col」に変更する
複数の範囲を結合する場合、QUERY関数の書き方に注意が必要です。
通常であれば列番号をそのまま指定すれば良いのですが、複数の範囲を結合する場合は「Col1,Col2,…」と指定するようにしましょう。
「購入日」と「売上」だけを抽出
正しい書き方
=QUERY({B5:H14;J5:P14},”select Col1,Col7“,false)
間違った書き方
=QUERY({B5:H14;J5:P14},”select B,H,J,P“,false)
複数の別シートをQUERY関数で結合する方法
続いて複数の別シートを結合する方法です。
QUERY関数で別シートを参照する場合はIMPORTRANGE関数と組み合わせて使います。
関数
=QUERY({IMPORTRANGE(シートURL,範囲);IMPORTRANGE(シートURL,範囲)},”select *”,false)
範囲の指定方法は先述した書き方と同じです。
注意点として、結合するシート範囲は揃えるようにしてください。
【応用】結合した複数のQUERY関数を更にQUERY関数で抽出
少し難しい説明ですが、やりたいこととしては以下の通りです。
7月データから「男性」8月データから「女性」を抽出・結合し、その中で売上が「¥2,000」以上を抽出
実際の関数
=QUERY({QUERY(B5:H14,”where D = ‘男性'”);QUERY(J5:P14,”where L = ‘女性'”)},”where Col7 >= 2000″)
元データのwhere句は列を、結合後のwhere句はColで指定することに注意しましょう。
まとめ
今回はスプレッドシートのQUERY関数で複数範囲・シートを結合する方法をご紹介しました。
QUERY関数は難しい関数ですが、使いこなせると効率よくデータの抽出や整形ができるようになります。
ぜひマスターしてください。
QUERY関数の使い方
ー | クエリ | 解説 |
---|---|---|
基礎 | select | 抽出する列を指定する |
基礎 | where | 抽出する条件を指定する |
基礎 | order by | 抽出するデータの並び替えを行う |
基礎 | group by | 抽出する列のデータ集計を行う |
基礎 | label | 抽出するデータの見出しを変更する |
応用 | ー | IMPORTRANGE関数と組み合わせて別シートを参照する方法 |
応用 | ー | 複数の範囲・シートを結合させる方法 |
応用 | where | 空白行だけを抽出・除外する方法 |
応用 | where | 複数の条件を指定する方法 |
応用 | where | 条件指定をセル参照にする方法 |
応用 | where | 条件指定に日付を使う方法 |