Googleスプレッドシートを使っていて「たくさんあるデータの中から、自分が欲しいデータだけを抽出したい」と思ったことありませんか?
抽出したいデータが1つだけなら、VLOOKUP関数を使えば解決できます。
しかし、抽出したいデータが2つ以上ある場合は、そう簡単にいきません。
そんな時に役立つのが「QUERY関数」です。
そこで今回は、QUERY関数についてご紹介したいと思います。
QUERY関数とは?
QUERY関数とは、選択した範囲の情報を別シートに出力することができる関数です。
一度関数を入力すれば、元データが変更された場合でも自動で結果が更新されるので、データ解析や管理シートを作成する際に非常に便利な関数です。
例えば、コールリストの中でアポを取得した企業を訪問日時順にして表示させるというようなことができます。
膨大なデータの中から複数を抽出できる点で、VLOOKUP関数やHLOOKUP関数よりも柔軟性のある関数だと言えるでしょう。
QUERY関数の使い方
=QUERY(範囲, クエリ, [見出し])
=QUERY(A11:D17, “select B where C = ‘転職’“ , true)
それぞれの引数について説明していきたいと思います。
- データ
QUERY関数で検索する範囲を指定します。
例えば、列全体を指定する場合は、「A : D」
セルで指定する場合は、「A1 : D10」
ということです。
別シートを指定する場合は、シングルクオーテーション(’ ‘)で囲みます。
- クエリ
どのような条件でデータを抽出するかを指定します。
この条件指定の部分でクエリ言語が必要になります。クエリ言語については後ほど説明します。
そして、クエリの部分は、ダブルクオーテーション(” “)で囲みます。ダブルクオーテーションの中でさらに文字列を指定したい場合は、シングルクオーテーションで ”クエリ ’ 文字列’ ” のように囲みます。
- 見出し
データ上部にある見出し行の数を指定します。
指定しない場合や-1と指定した場合はデータの内容に基づいて自動推測されます。
こちらは省略可能です。
クエリ言語一覧
クエリ言語は全部で10種類あります。
今回はこの中でも特に重要な4つを紹介していきたいと思います。全部覚える必要はなく、重要なもの以外は必要な時に調べて使えれば大丈夫です。
① SELECT:表示する列を選択
② WHERE:条件に一致する行のみを返す
③ GROUP BY:行全体に値を集計
④ PIVOT:列の一意の値を新しい列に展開
⑤ ORDER BY:並べ替え
⑥ LIMIT:表示する行数を制限
⑦ OFFSET:任意の行数をスキップ
⑧ LABEL:列見出しを上書き
⑨ FORMAT:表示される数値を整える
⑩ OPTIONS:クエリ実行のためのオプションを制御する
① SELECT
指定した範囲の中から特定の列だけを選択して表示することのできるクエリです。
表示させる列の順番を変更することも可能です。
例)A,D列のみを抽出
この例で考えると、データ範囲「A1:E32」の中からA, D列のみを抽出したいので、「=QUERY(A1:E32, “SELECT A, D”)」と入力すればA列とD列だけを抽出することができました。
② WHERE
選択した列に条件を加えることができるクエリです。
原則として、SELECTで選択する列を指定した後に、WHEREで条件を指定しなければなりません。
もし、複数の条件を設定する場合、以下の2つを使います。
・AND:かつ(全ての条件を満たす場合に抽出)
・OR:または(全ての条件の中のいずれかを満たす場合に抽出)
例)A,D列を選択し、D列が5より大きいデータを抽出
この例で考えると、まずデータ範囲「A1:E32」の中からSELECTでA, D列を選択します。
そこで抽出したデータの中から、D列が5より大きいデータを抽出したいので「=QUERY(A1:E32, “SELECT A, D WHERE D > 5”)」と入力すれば、最終的にD列が5よりも大きいデータだけを抽出することができました。
③ GROUP BY
選択した値を集計することができるクエリです。
このクエリを使う場合、集計関数と呼ばれる関数が必要になります。全部で以下の5つあります。
・COUNT:列の個数を表示する
・SUM:列の合計値を表示する
・AVG:列の平均値を表示する
・MAX:列の最大値を表示する
・MIN:列の最小値を表示する
例)合計インプレッション数を知りたい
この例で考えると、データ範囲「A1:E32」の中から合計インプレッション数を知りたいので、「B列」を指定し「SUM」で合計を出す必要があります。
なので「=QUERY(A1:E32, “SELECT SUM(B)”」と入力すれば、以下のように合計インプレッションをデータの中で計算して表示することができました。
④ ORDER BY
抽出結果の並び替えができる言語です。
データの並び替えには以下の2通りの方法があります。
・降順(desc)ソート:数字を大きいものから小さいもの順に並べることができます。
・昇順(asc)ソート:数字を小さいものから大きいもの順に並べることができます。
例)コンバージョン数を大きい順に並べ替えたい
この例で考えると、まずデータ範囲「A1:E32」の中から、SELECTでA, D列を抽出します。
その後、ORDER BYでコンバージョンのデータがあるD列を降順(desc)に並べ替えます。
なので「=QUERY(A1:E32, “SELECT A, D ORDER BY D desc”)」と入力すると、コンバージョン数を大きい順に並べ替えて抽出することができました。
詳しくはGoogleヘルプページでもご確認いただけます。
https://support.google.com/docs/answer/3093343?hl=ja
QUERY関数の使い方のまとめ
今回はデータ抽出に役立つQUERY関数をご紹介しました。
QUERY関数は少し複雑な関数ですが、これを身に付けることで格段に業務効率アップが狙えます。
ぜひ使ってみてください!