【Googleスプレッドシート】query関数の簡単な使い方解説

その他

こんにちは。当サイトへお越しいただきありがとうございます。本記事では、Googleスプレッドシートのquery関数について解説いたします。

このquery関数の動作は、エクセルでは実現できない(2023年1月現在)動きなので、スプレッドシートの優位性の一つですね。

query関数でできること

query関数でできることは簡単に言うと、「SQLが書ける」と言う事になります。

SQLが書けることに加えて、他のシートから引っ張ってきたりなどすれば、条件で抽出しつつ、表の結合なんかもできます。大変便利です。

つまり、作業者が限られたシートに入力し、裏側でquery関数を使ってデータ抽出を行い、その結果を同じスプレッドシート内にデータマートとして作成する。これを使いたいようにアレンジすることで、sぷレッドシート内で完結するRPA(業務自動化)ができます。さらに個人的な推しどころは、マクロなどの言語でない点です。非エンジニアの方は、プログラミング言語と言うだけで拒否反応があると思いますが、普段使っているエクセルの延長線上である「関数」であれば、非エンジニアの方も拒否反応が薄れ、多少はメンテナンス性が上がります。

さて、話が逸れてしまいましたが、query関数にできることは、「SQLが書ける」ということでした。

関数の使い方

基本的な使い方

=query('シート名'!A1:Z100, "SELECT A, B, C, E WHERE D='条件jouken'")

一般的なSQLであればFROM句が存在しますが、関数の第一引数で範囲を指定しているので、その必要がないと言う事でしょう。
WHERE句の条件が文字列の場合は、外側と内側で「””」「”」を分けないといけません。注意点ですね。

別シートに跨ってデータを引用する場合

=query({'シート1'A1:Z100;'シート2'A1:Z100;'シート3'A1:Z100}, "SELECT * WHERE Col1 is NOT NULL")

上記のように、「{}」で複数の範囲を入れます。それぞれの範囲を「;」で繋いでいきます。そうすることで、縦結合された形で、データを繋げることができます。繋げたものを、SQLで抽出すると言う感じです。
また、列名の表現ですが、一例目は「D」というスプレッドシート上の列名です。「Col1」は範囲の1番目の列です。このような使い分けがありますのでご注意ください。
さらに注意しなければいけない点としては、「列数の一致」です。一致しなければエラーになります。SQLを使い慣れている人であればある程度想定の範囲内のエラーかと思いますが、使い慣れないうちは、ご注意ください。

まとめ

以上が簡単な使い方です。

さらに詳しく使用方法などを知りたい方は、いつも参照しているサイトを貼っておきますので、ご参照ください。非常に勉強になります。

スプレッドシートでわざわざ実現する必要があるの?と思うかもしれませんが、どうしてもレガシーな環境でやらなければいけないこともあります。また、データベースを導入するにはあまりにもコスパの悪い環境もあります。実際に私にも経験がありますので、よく分かります…。

データサイエンティストの書評ブログ
趣味が読書くらいしかない駆け出しデータサイエンティストの書評ブログです。日々の勉強のアウトプットや趣味の読書のおすすめをしていきます。

参照サイト

連載でいっぱい詳しく解説してくれています。
https://tonari-it.com/spreadsheet-what-is-query/
https://tonari-it.com/spreadsheet-query-select/
上記のリンクから飛べば、このサイトよりかなり詳しく解説してくれていますので、ぜひご参考まで!

公式ドキュメント
https://support.google.com/docs/answer/3093343?hl=ja

転職・スキルアップはこちらからどうぞ

オススメ転職はこちらからどうぞ
オススメのスキルアップはこちらからどうぞ

コメント

タイトルとURLをコピーしました