【Googleスプレッドシート | クエリ関数シリーズ1】Query関数使ってる??

スポンサーリンク

クエリ関数って使ってる?

クエリ関数とは、Googleスプレッドシート特有の関数で、指定したデータ範囲内から、条件を指定してデータ抽出などを行える関数です。

このように、指定範囲から条件を指定してデータを取り出す関数は、EXCELでもお馴染みのデータベース関数各種がありますが、このクエリ関数を使うことによって、より柔軟に複雑な条件を簡単に指定することが出来るようになります。

EXCELにはない関数なので、せっかくスプレッドシートを使うなら覚えておきたい関数ですね(^^)

まず今回は、クエリ関数の基本的な使い方を紹介させていただきます!

基本的な使い方

クエリ関数は名前の通り「関数」なので、他の通常の関数のように構文があります。

基本構文

= QUERY( 範囲, "式")

基本の形はこのようになっています。引数には、「範囲」と「式」を指定します。「式」には、通常「select」から始まるクエリ関数用のものを指定します。この「式」が様々に指定できるため、色々な形でのデータ抽出が可能になります。

※データベースで扱うSQL文に似た形です。

次のサンプルを使って実際に実行しながら説明していきたいと思います。

【サンプル】

※なんちゃって個人情報さんから頂いたサンプルですm(_ _)m

この元データを「範囲」に指定して、次の「表示用」シートのA1セルにQuery関数をいれていきます。

単純抽出

では早速実行しながら進めていきましょう!

まずは、条件を指定せずに指定した列をそのまま取ってきたいと思います。

「表示用」シートのA1セルに次の数式を入力して下さい。

=QUERY('クエリ関数Data'!A1:H,"select A")

第1引数の「範囲」:「クエリ関数Data!」とシート名(「'」で囲う)と「!」に続けて、セル範囲を指定します。「A1:H」とHの方には行番号を指定していません。これは間違っているわけではなくわざとです。範囲の終端に行番号を指定しないことで、終わりの行は一番下の意味となります。このように指定することで、元のデータのレコードが追加されても、わざわざ範囲を指定しなおす必要がなくなります。

第2引数「"式"」:「"select A"」と入力しています。範囲の方は必要ないですが、式は「"」で式全体を囲う必要があるので注意して下さい。「A」は指定した範囲の「A列」の意味です。「select」との間には半角スペースを入れて下さい。

これで、「指定した範囲のA列を抽出する」という数式になります。

こんな感じですね。

それでは「Enter」で確定してみましょう。

図のように、「クエリ関数Data」シートのA列が抽出されました。

複数の列も指定出来ます。

「式」を少し変更します。「select」の後に「半角スペース」最初の指定列である「B」に続けて、「,」。そして次の指定列「D」というように、「,」で指定する列を追加することが出来ます。

では、この式を入力して実行して下さい。

=QUERY('クエリ関数Data'!A1:H,"select B,D")

実行してみます。

「クエリ関数Data」シートのB列とD列が抽出され表示されました。

【列名指定の別の方法】

列名の指定方法はもう一つあります。「Col○」という書き方です。

=QUERY({'クエリ関数Data'!A1:H}," select Col2")

第1引数の「範囲」を「{}」で囲います。

第2引数の「式」で、列名を指定していた場所を「Col」に続けて数字を書きます。ここに入れる数字は、指定した範囲の一番左の列から「何番目の列か」という数字をいれます。実際にスプレッドシートに入力してみましょう。

指定している範囲は。A列からですので、2番目の列であるB列が抽出されていることがわかりますね。

もちろん複数列の指定も大丈夫です。「,」で列を続けて入力します。

=QUERY({'クエリ関数Data'!A1:H}," select Col2,Col4")

ところでですが、「表示用」シートですが、数式はA1セルにしか入れていませんが、その他のセルまで結果が表示されています。

A1セルを変更するともちろん結果が消えてしまいますが、その他の結果が表示されているセルも、別の値を入力してしまうと全体がエラーになってしまうので注意して下さい。

逆に、結果表示に必要な範囲に、最初から値が入ったセルがあってもエラーになってしまいますので注意して下さい。

【エラーになる動画】

【全ての列を指定する場合】

列名を「*」で指定すると全ての列を指定していることになります。

=QUERY('クエリ関数Data'!A1:H,"select *")

ちなみに、その「"select *"」は省略も出来ます。

=QUERY('クエリ関数Data'!A1:H)

更に!範囲を「{}」で囲ったら、「QUEYR」も省けます(^^)

={'クエリ関数Data'!A1:H}

まとめ

今回は、一番基本的な構文をご紹介しました。引き続き条件のして方法などの記事も書いていこうと思っています!

おまけ

Google先生の説明

https://support.google.com/docs/answer/3093343?hl=ja