![見出し画像](https://assets.st-note.com/production/uploads/images/77595064/rectangle_large_type_2_0c5dc62a3fbf273fc8847c45007fce3d.png?width=1200)
QUERY関数
最近、表計算といえばGoogleスプレッドシートを使っています。Googleスプレッドシートには、Googleのオリジナル関数「QUERY」があります。この関数は、スプレッドシートの表をテーブルのように扱い、SQLでデータの抽出や集計などの操作が出来ます。エクセルには、スピルという便利な機能が最近追加されました。QUERY関数もスピルのような挙動をします。スピルについては、ネットを参照してください。
準備
今回利用するファイルは、パソコン教室の会員リストを想定しています。
![](https://assets.st-note.com/img/1651377856345-I63tBpkg9U.png?width=1200)
構文
![](https://assets.st-note.com/img/1651378171599-07J89ceLw2.png?width=1200)
表からデータを抽出
クエリは、データベースのSQLに非常に似ています。データを抽出するには、クエリに「SELECT 列1,列2・・・」と指定します。
![](https://assets.st-note.com/img/1651378518206-G04KrnSXZl.png?width=1200)
セルA3に設定された数式の結果が自動的に隣接するセルに水が溢れるようにデータが表示されます。
「'会員リスト'」はシート名を、「!」以降はセルの範囲を示しています。開始セルはセル番号を指定しますが、終了セルは列番号のみ行番号はスプレッドシートが自動的に予測します。氏名とコースだけ表示したいなら「SELECT A,B」にします。
![](https://assets.st-note.com/img/1651379085212-6qKRimTWL5.png?width=1200)
条件を指定する
一部の条件を満たすデータだけ取り出したい場合は、「where」を利用します。コースが「パソコン」の会員を抽出してみます。
![](https://assets.st-note.com/img/1651379655648-1VieIIYLc4.png?width=1200)
「select * where B = 'パソコン'」と指定しても良いのですが、セルの値を参照することも出来ます。セルB3の値を変更すれば表の結果も変化します。
集合関数(SUM、AVGなど)も使えます
合計を取得する場合
![](https://assets.st-note.com/img/1651381085022-nyqwsh8ckk.png?width=1200)
まず、4行目が空白なのは範囲の最終行を指定していないためです。
この結果が、1つの数式で表示することが出来ます。
これを見るとエクセルでもSUMIF関数で出来るよと思う方もいるかもしれません。エクセルでは数式1つだけで表示することが出来ません。
空白が気になる方は、「where A is not null」を追加すると空白行は表示されません。
「pivot」を使うと横方向に表示することも出来ます。
![](https://assets.st-note.com/img/1651381486084-iwPIL53F2Q.png?width=1200)
最後に
表計算ソフト(エクセル、スプレッドシート)は関数を使うとノンプログラミングでかなりのことが出来ます。いろいろな関数にチャレンジしてみましょう。
SQLを学習したい方へ(ちょっと宣伝)
SQLをもっと学習したい方へ、ストアカで講座を行っています。
この記事が気に入ったらサポートをしてみませんか?