2019.04.10みなさんこんにちは!もり(@moripro3)です。by句を使用して抽出結果をソートする方法を紹介しました。by句で抽出結果を昇順・降順ソートするGoogleスプレッドシートのQUERY関数を紹介するシリーズ。by句を使用して、抽出結果をソートする方法の紹介です。descで降順ソート・ascで昇順ソートができます。by句を紹介していきます。これまで紹介してきたselect句・where句はデータを抽出するための句でした。QUERY関数のメリットは、データを抽出することだけでなく、抽出データの集計までを一気にできることです。by句と集計関数とはQUERY関数は、クエリで抽出した結果を、グループ化して集計することが可能です。そのためには、下記の2つを理解しておく必要があります。by句とは、複数行にわたる値を集計するための句です。by句で指定する列の、値の組み合わせごとに単一行が作成されます。by句で指定するすべての列は、select句で集計関数によって集計されている必要があります。文字だけで見てもむずかしいので、のちほど、実際の集計例で詳しく説明します。by句は集計関数と一緒に使用する」と理解しておきましょう。集計関数とは集計関数とは、指定の列の値に対して処理を実行する関数です。集計関数(列)集計関数には下記の5種類があります。この記事では、列の要素数を集計するcount関数を紹介します。列の最小値を返すいずれも、使い方はスプレッドシートの関数とほぼ同じです。APIのクエリ言語の集計関数です。それでは、備品購入リストのサンプルを用いて実際の集計例をみていきましょう!データの個数をカウントするcount関数count関数は、指定列の要素数を集計する関数です。count(列)まずは最も簡単な使い方を紹介します。備品購入リストB列「区分」の要素数をカウントする方法です。要素数とは「データの数」のことです。全14行からヘッダーの1行をのぞくと、データの数は13個なので、count関数の結果は「13」が返ります。count(B)",1)項目ごとのデータ個数をカウントするそれではここからが本題です。by句と併用して、項目毎の個数を集計します。by句でB列をグループ化します。B",1)項目毎のデータ個数を算出できましたが、それぞれ何の項目かわからないので、項目名も表示させたいですよね。そこで、select句でB列を指定します。B",1)ここまでで、QUERY関数を使用して項目毎のデータ個数の集計ができました。第1引数の「データ範囲」に列全体(A列~E列)を指定しているため、空白行もカウントされています。これを解決しましょう。空白行は集計対象外とするこの問題は、前回の記事でお伝えしたとおり「データが存在する行のみを集計対象とする」ことで解決します。nullB列がnull(空白)でない行、つまり「B列になんらかのデータがある行」を集計対象にします。by句よりも前に記述します。B",1)QUERY関数とCOUNTIF関数の違い上記の集計結果をみて、スプレッドシートのCOUNTIF関数を思い浮かべた方もいるでしょう。条件)G列に項目名を入力してH列に関数を組めば、QUERY関数と同様の結果が得られますし、記述もシンプルです。『それじゃあ、わざわざ長くて難しいQUERY関数を使うメリットってあるの...?』って思いますよね。大丈夫です、あります。QUERY関数で集計するメリット集計元のデータ(A列~E列)に行追加した場合を考えてみましょう。15行目に新規項目「その他」が発生しました。COUNTIF関数は「項目名ありき」の集計方法です。集計条件(項目名)を人が設定するため、元データに新規項目が発生した場合、人が手作業でその項目を追加する必要があります。下記の場合だと、G4セルに「その他」という項目名を追加し、H4セルにCOUNTIF関数を入力すれば集計ができますが、それではちょっと面倒ですね。「元データの合計値」と「集計結果の合計値」が一致せず、原因を調べたら集計漏れの項目があった...なんて経験ありませんか?それに対して、QUERY関数は項目名を意識する必要がありません。B列をグループ化して集計してね、という指定なので、新規項目も自動で集計されます。このように、QUERY関数で集計するメリットは、「集計する項目名を意識しなくてよいため、集計漏れが発生しない」ことです。by句では、ソート順を指定しない場合、グループ化された列によって自動的にソートされます。B列でグループ化した場合、B列の名称順でソートされます。by句で並び替えができます。by句には、Bではなく、count(B)を指定するのがポイントです。by句と集計関数を使用して、列をグループ化してデータの個数を集計する方法を紹介しました。by句とsum関数で列の値の合計値を求めるGoogleスプレッドシートのQUERY関数を紹介するシリーズ。by句とsum関数で項目毎の値の合計値を求める方法です。label句を使用して集計結果の列名を変更することもできます。tonari-it.com2019.04.17連載目次:GoogleスプレッドシートQUERY関数をマスターしようスプレッドシートのQUERY関数を使って、データ抽出・集計を効率化する方法を紹介しています。VBAを専門とするITライターです。退屈なことはプログラミングで片づけよう!自らの事務職経験を活かし、事務作業をとことんラクにできるITネタを発信していきます。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。マイマップを活用することで自分がセレクトした場所についての情報をまとめることができます。営業情報を管理するのに適しており大変便利なツールです。マイマップを活用するイメージをご紹介したいと思います。Appsスプレッドシートのピボットを使用して流入別セッション数も自動でレポーティングスプレッドシートのGoogleアナリティクスアドオンに「流入別セッション数」のレポートを追加する方法についてお伝えします。その際に必要になるピボットテーブルの作成方法についてもお伝えします。作りましたので、その方法についてお伝えします。Scriptの超入門シリーズ、GASプログラミングの基礎を学んでいっております。今回はログを表示するLogger.logの使い方、%sによる書式を使った方法についてもお伝えします。Apps改ページプレビューがない?!スプレッドシートの印刷範囲を設定する方法とはスプレッドシートで作成した資料を印刷、またはPDF形式でダウンロードしようとしてふと気がつく。Apps【QUERY関数】where句と比較演算子を使って単一条件に一致した行を抽出するGoogleスプレッドシートのQUERY関数を紹介するシリーズ。第三回目は、where句と比較演算子を使用して、指定条件に一致する行を抽出する方法を紹介しています。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。