【QUERY関数】order by句で並び替え・ソートする方法【昇順・降順】

2019-09-22

QUERY関数のorder by句でソートする方法【昇順・降順】
mono
mono
こんにちは、monoです。

QUERY関数で出力したデータ、「順番がぐちゃぐちゃでわかりにくい」と思ったことはありませんか?

order by句を使えばデータをソートできるので、とても見やすい形で出力結果を取得できるようになります。

当記事では、

QUERY関数の出力を昇順・降順に並び替えたい

QUERY関数でデータをソートする方法を知りたい

order by句の使い方を知りたい

という方向けに、

  1. QUERY関数の基礎知識
  2. order by句の使い方
  3. where句・gtoup by句との組み合わせ

について解説します。

QUERY関数の基礎知識

まずはQUERY関数の基礎知識からお話します。

QUERY関数は表計算ソフトの中でGoogleスプレッドシートでしか使うことのできない「特別な関数」です。

QUERY関数は以下の公式で構成されています。

 command=QUERY(範囲,"select 出力データ列 where 条件式 group by グルーピング列 order by ソート条件 limit 出力データ数 offset 開始行 label 列名")

QUERY関数はDB操作に使われるSQL文をベースに作られています。

QUERY関数を使えばデータのフィルタリングやソート、グルーピングなどが驚くほど簡単にできるようになります。

この記事ではQUERY関数のorder by句の使い方について解説するので、

まずはQUERY関数全般について知りたい

という方は、QUERY関数の基礎から解説している「QUERY関数の基礎から応用まで!使い方を徹底解説【完全版】」から先にお読みください。

order by句の使い方

order by句を使えば、QUERY関数で出力したデータを「任意の列を基準に昇順・降順にソート」することができます。

昇順・降順の指定方法

昇順・降順の指定方法は、以下の表を参考にしてください。

並び順 演算子 入力例
昇順 asc order by A asc
降順 desc order by A desc

order by句単体では、データのフィルタリングやグルーピングはできないので、フィルタリングやグルーピングされたデータを出力したい場合は、where句やgroup by句を活用してください。

(where句、group by句の活用方法は後述します)

order by句の使用例

order by句の使用例を昇順・降順別に紹介します。

使用するデータセットは以下です。

昇順:asc

QUERY関数のorder by句を使って昇順にソートするには、以下のような条件式を記述します。

 command=QUERY(A1:C8,"select * order by B asc")

実行すると、単価の安い順に商品が並び替えられていることがわかります。

降順:desc

QUERY関数のorder by句を使って降順にソートするには、以下のような条件式を記述します。

 command=QUERY(A1:C8,"select * order by B desc")

実行すると、単価の高い順に商品が並び替えられていることがわかります。

複数のソート条件式を指定したいとき

複数のソート条件式を指定したいときは、order by…の後に続いて、「,(カンマ)」区切りで条件式を指定してあげればOKです。

例えば、種別ごとに単価の安い順にソートしたいときには、以下のようにQUERY関数を記述します。

 command=QUERY(A1:C8,"select * order by C asc,B asc")

実行すると、種別ごとに、単価の安い順に商品が並び替えられていることがわかります。

where句・group by句との組み合わせ

最後に、order by句と組み合わせて使えるQUERY関数の機能「where句」と「group by句」について解説します。

where句とorder by句を組み合わせる

where句では、出力結果のフィルタリングをすることが可能です。

where句の使い方については「QUERY関数のwhere句を100%使いこなす方法【徹底解説】」で解説しています。

where句とorder by句を組み合わせて使うには、以下のように記述します。

 command=QUERY(A1:C8,"select * where C='精肉' order by B asc")

商品種別が「精肉」にフィルタリングされた上で、単価の安い順にソートされていることがわかります。

group by句とorder by句を組み合わせる

where句では、出力結果のグルーピング・集計をすることが可能です。

group by句の使い方については「QUERY関数のGROUP BY句でデータを集計する【超便利】」で解説しています

group by句とorder by句を組み合わせて使うには、以下のように記述します。

 command=QUERY(A1:C8,"select C,count(C) group by C order by count(C) desc")

商品種別ごとに商品数が集計され、商品数の多い順にソートされていることがわかります。

まとめ

今回はQUERY関数のorder by句の使い方について解説しました。

order by句を理解すると、QUERY関数の出力結果がかなり見やすくなります。

QUERY関数はとっても便利な関数なので、ぜひ使い方をマスターして、業務の効率化を目指しましょう。

では、また。

QUERY関数の基礎から応用まで!使い方を徹底解説【保存版】

【2019年】スプレッドシートの勉強におすすめの本7選【網羅しました】

  • この記事を書いた人

mono

26歳♂️関東在住のサイドFIREを目指すブロガー/座右の銘は「知識は誰にも奪われない」/ゆるく稼いで楽しく暮らすライフハック情報をお届けします/アイコンは黎(クロイ)さん。

スキルを磨く スプレッドシート

QUERY スプレッドシート関数

© 2021 monoblog