TigerRunTigerRunMacWordPressGoogleAppsScriptホームGoogleSheets【Googleスプレッドシート】VLOOKUPの上位互換!?QUERY関数を使いこなそう2019-10-25ツイートシェアはてブLINEPocketこの記事ではGoogleスプレッドシートのQUERY関数を自在に操る方法を解説します。初心者の方にも分かるように丁寧に解説していきますので、必要に応じて読み飛ばして頂ければと思います。QUERY関数を使いこなせるようになれば、スプレッドシートでできるデータ処理の幅が爆発的に広がります!この記事をみて使いこなせる様にがんばりましょう。OutlineQUERY関数とは?VLOOKUPとの違いは?QUERY関数の使い方〜基本編QUERY関数の使い方〜応用編クエリ一覧(抜粋)クエリのサンプル1:並び替えと複雑な絞り込み、及び日付フォーマットクエリのサンプル2:グループ化と最大値QUERY関数とは?VLOOKUPとの違いは?QUERY関数とは、VLOOKUPと同様に範囲を検索する関数です。検索の条件指定がSQLに近いことから、条件指定のバリエーションがとんでもなく広いです。SQLって何?と思った方もいると思います。言ってしまうとデータベースを扱うためのプログラミング言語みたいなもんですが、構える必要はありません。Excelやスプレッドシートの関数のようになれれば誰でもできるので機会があればどんどんチャレンジして下さい。QUERY関数の使い方の話をする前に、まず類似の関数であるVLOOKUPとの違いについて説明をしておきます。QUERY関数の使い方だけ知りたいという方は次の章からみて下さい。番号)と書いて使います。んこ分かりにくいので図示したものが以下になります。この時の処理の流れは、以下のようになっています。値が一致する最左列があれば、同じ行の左から数えた番号のセルの値を返すイメージでなんとなく分かればそんなに難しい処理は行われていませんね。VLOOKUPを使ったことのある人も多いと思います。データを書き込むシートと誰かに見せる様のシートを使い分ければ、みやすく扱えるという利用法などがあります。この関数の問題点として、以下のことが挙げられます。検索条件を完全一致でしか指定できない1つの値しか参照できない検索範囲の最左列しか検索指定できない、、などなど数え上げるとキリがありません。エクセルでもスプレッドシートでもできることの範囲を飛躍的に広げてくれるVLOOKUPですがQUERY関数の前では存在価値がないと思えるほどです。VLOOKUPはさっと検索を実現できるという点では依然として役立つものなので状況に応じた使い分けできるようになれば完璧です。以降ではQUERY関数の使い方を基本・応用に分けてみていきます。QUERY関数の使い方〜基本編ここからはQUERY関数の基本的な使い方を解説します。[見出しの行数])というように書けばOKです。んこ分かりにくいのでまたまた図示したものが以下になります。'人間'",0)この時の処理の流れは、以下のようになっています。範囲(AからE列)を指定するクエリで、返す値をBCD列のものに限定するクエリで、しぼりこみ条件を「E=’人間’」にするいかがでしょうか?少し難しいと思った方はとりあえず試してみることをオススメします。手を動かしているとイメージが湧いて頭に残り、そして使えるようになります。QUERY関数使いこなせば機械的な作業が減るのでがんばりましょう。以下にスクショで使用したスプレッドシートを共有しておくのでコピーして遊んでみて下さい。基本編ではクエリの例を1つしか挙げませんでしたが、それだけでは物足りないという方もいるかと思います。ここからはクエリについてのまとめと具体的な例を挙げていくので是非試しに使ってみて下さい。ちなみに僕が書いていることは全てGoogle公式ページ(英語)に書いてあることを元にしています。ある程度ネットで調べつつ、慣れてきたら公式ドキュメントを読むとさらに幅が広がるので是非チェックして下さい。クエリについてGoogleリファレンスクエリ一覧(抜粋)QUERY関数でよく使うクエリを下の表にまとめました。上のまとめを使えばいろいろとできることがお分かりかと思います。いくつか補足があります。順番も重要クエリの注意点として、書く順番によっては機能しなくなります。これはSQLでも同じようなもので、例えばselectは一番始めに書かなければなりません。QUERY関数の場合は省略可能です。このような細かいところは使っているうちに慣れていきます。動かなければ、動くようになるまでクエリを削ったのちに足していくという作業をしているとだんだん書き方が身に染みてきますので恐れずに使っていきましょう!クエリのサンプル1:並び替えと複雑な絞り込み、及び日付フォーマットまず1つ目のサンプルが以下の画像になります。'YYYY'",0)この時のクエリは下記のように解釈されます。byで並び順番をCの昇順にするlimitで結果を4行に限定するformatでD列を年表示にするいかがでしょうか?A列を数字のものに絞り込むあたりは正規表現というものを用いています。僕はエンジニアですがそれでも調べならがら正規表現を使うので、よく分からんってなっても問題ありません。気になる方はググってください。非常に強力なので是非身に付けてほしいです。あと、先ほども述べましたがクエリを書く順番は重要です。アレンジする時もそこらへんを意識するようにしましょう。次のサンプルは少し複雑ですが、がんばりましょう。3",0)この時のクエリは下記のように解釈されます。byでE列が同じ値のものを同一グループとして扱うlimitで結果を3行に限定するいかがでしょうか?E列(属性)でグループ化したものに対して、C列の最大値とE列を返すというクエリです。個別の値は出せないということでもあります。selectの後にAを書くとエラーになります。ちなみに画像の下の方の式は空白行などを表示させない様に工夫したものになっています。余裕があれば解読しましょう。''",1)初めてみる方には少し難しい内容でした。慣れれば誰でもできますし、できるようになると爆発的に作業量が減るので以下のシートをコピーしてチャレンジしましょう。サンプルシートで遊んでみるまとめ今回はQUERY関数の基本的な使い方や応用例をいくつか紹介しました。この関数を使いこなせる様になれば、簡単なデータ処理なら自動化することができます。コメントをキャンセルメールアドレスが公開されることはありません。