QUERY関数で出力したデータ、「順番がぐちゃぐちゃでわかりにくい」と思ったことはありませんか?
order by句を使えばデータをソートできるので、とても見やすい形で出力結果を取得できるようになります。
当記事では、
「QUERY関数の出力を昇順・降順に並び替えたい」
「QUERY関数でデータをソートする方法を知りたい」
「order by句の使い方を知りたい」
という方向けに、
- QUERY関数の基礎知識
- order by句の使い方
- where句・gtoup by句との組み合わせ
について解説します。
QUERY関数の基礎知識
まずはQUERY関数の基礎知識からお話します。
QUERY関数は表計算ソフトの中でGoogleスプレッドシートでしか使うことのできない「特別な関数」です。
QUERY関数は以下の公式で構成されています。
=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句を使って昇順にソートするには、以下のような条件式を記述します。
=QUERY(A1:C8,"select * order by B asc")
実行すると、単価の安い順に商品が並び替えられていることがわかります。
降順:desc
QUERY関数のorder by句を使って降順にソートするには、以下のような条件式を記述します。
=QUERY(A1:C8,"select * order by B desc")
実行すると、単価の高い順に商品が並び替えられていることがわかります。
複数のソート条件式を指定したいとき
複数のソート条件式を指定したいときは、order by…の後に続いて、「,(カンマ)」区切りで条件式を指定してあげればOKです。
例えば、種別ごとに単価の安い順にソートしたいときには、以下のようにQUERY関数を記述します。
=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句を組み合わせて使うには、以下のように記述します。
=QUERY(A1:C8,"select * where C='精肉' order by B asc")
商品種別が「精肉」にフィルタリングされた上で、単価の安い順にソートされていることがわかります。
group by句とorder by句を組み合わせる
where句では、出力結果のグルーピング・集計をすることが可能です。
group by句の使い方については「QUERY関数のGROUP BY句でデータを集計する【超便利】」で解説しています
group by句とorder by句を組み合わせて使うには、以下のように記述します。
=QUERY(A1:C8,"select C,count(C) group by C order by count(C) desc")
商品種別ごとに商品数が集計され、商品数の多い順にソートされていることがわかります。
まとめ
今回はQUERY関数のorder by句の使い方について解説しました。
order by句を理解すると、QUERY関数の出力結果がかなり見やすくなります。
QUERY関数はとっても便利な関数なので、ぜひ使い方をマスターして、業務の効率化を目指しましょう。
では、また。