読んで欲しい人
- SQLに興味があるが、一から環境やデータ整備するのがめんどくさい人
- vlookupとかでデータ抽出しているが、限界を感じている人
- データ分析したい人
- ノンプログラマーでもクエリぐらいは使いたいって人
- クエリって美味しいの?って人(クエリは美味しいですよって意味も込めて)
Query関数(クエリ関数)シリーズ予定 (あくまで予定)
- 概要と目的
- クエリ関数の構成
- 基本の基本 SELECT句(全部取得、特定カラムだけ取得)
- 抽出の基本 WHERE句を使ってみる(数値一致、大小、日付一致、大小etc)
- GROUP BY句を使ってみる
- 他のシートからデータを持ってきてみよう〜 ImportRange関数との組み合わせ〜
- 並び替えの基本 ORDER BY句←今回
- SQLやるなら必須 サブクエリをやってみる
- データに改行が入ってるぞ likeで対応できない時はcontains/starts withが助けてくれる
Query関数:Order Byの基本
さてOrder byは基本ソートする機能です。基本的なクエリ記法は以下のようになります。
=query(データ範囲,"select * order by E desc")
上の例をベースに説明させていただきます。
黄色アンダーライン部分:”order by” + ”カラム”で、ソートする対象カラムを選択する
赤アンダーライン部分: desc(降順)、asc(昇順)でソート
ascでソートした場合の留意事項
昇順で以下のデータを以下のような関数でソートしたとしましょう。
=query(A1:H8,"select * order by F asc")

面白いことにデータにブランクが入ってきてしまいます。

なぜかというと、元々のデータ範囲内にブランクデータが含まれているので、ブランク部分が最小の値として上部にに出てきてしまいます。これがデータ範囲がカラム全体指定とかになっていると。。。
たぶん、全く表示範囲内にデータが現れてこないこともあるかも。ということで、その対応方法を説明します。
is not null を利用してブランク(欠損値)を除外する
さて、対応方法です。以前WHERE句で説明した、NULLを利用します。過去記事は以下をご覧ください。
実際は以下みたいにすると綺麗にブランクが削除できます。
=query(A1:H8,"select * where F is not null order by F asc")
まとめ
ORDER BYの説明でした。ソートするだけなので、正直個人的にはあまり使わないので、正直そんなにネタもありません。
ある程度シンプルに使えるクエリ要素なので、練習に使うのもいいかもしれません。
さて、次はサブクエリですが、これは個人的にはよく使うので、お楽しみにしてください。
連載目次: spreadsheet_query関数を使いこなそう
SQL勉強もかねて、spreadsheetのquery関数の使い方に慣れていきます。簡単なselect文の使い方から、SQLとの違いも含めて勉強していきます。
- スプレッドシートQuery関数を使ってみよう ①概要と目的
- スプレッドシートQuery関数を使ってみよう ②クエリ関数の構成
- スプレッドシートQuery関数を使ってみよう ③SELECT句
- スプレッドシートQuery関数を使ってみよう ④WHERET句
- スプレッドシートQuery関数を使ってみよう ⑤GROUP BYを使ってみる
- スプレッドシートQuery関数を使ってみよう ⑥他のシートからデータを持ってきてみよう〜 ImportRange関数との組み合わせ〜
- スプレッドシートQuery関数を使ってみよう ⑦並び替えの基本 ORDER BY句
- スプレッドシートQuery関数を使ってみよう ⑧SQLやるなら必須 Query関数でもサブクエリをやってみる
- スプレッドシートQuery関数を使ってみよう ⑨データに改行が入ってるぞ etc クエリ関数エラー対策
コメント