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関数の使い方

スプレッドシート – QUERY関数の使い方まとめ

スクロールできます
クエリ解説
基礎select抽出する列を指定する
基礎where抽出する条件を指定する
基礎order by抽出するデータの並び替えを行う
基礎group by抽出する列のデータ集計を行う
基礎label抽出するデータの見出しを変更する
応用IMPORTRANGE関数と組み合わせて別シートを参照する方法
応用複数の範囲・シートを結合させる方法
応用where空白行だけを抽出・除外する方法
応用where複数の条件を指定する方法
応用where条件指定をセル参照にする方法
応用where条件指定に日付を使う方法
目次