【スプレッドシート】QUERY関数のorder by句で並べ替える方法
本記事では、スプレッドシートのQUERY関数で抽出データを昇順・降順に並べ替える方法を解説していきます。
基本的なQUERY関数の使い方について知りたい方は、こちらの記事もあわせてご覧ください。
QUERY関数のorder by句の使い方
QUERY関数で抽出したデータを並べ替えるにはorder byを使います。
使い方は第二引数に以下のように指定します。
=QUERY(範囲,”select * order by 列 asc”,1)
「列」には並べ替えの基準にしたい列を指定してください。
また、order byは第二引数の最後に指定するようにしましょう。
昇順に並べ替える
売上の「小さい順(昇順)」に並べ替える
関数
=QUERY(J4:P14,”select * order by P asc”,1)
出力結果
解説
昇順(小さい順)に並べ替えるには「order by 列 asc」と指定します。
降順に並べ替える
売上の「大きい順(降順)」に並べ替える
関数
=QUERY(J4:P14,”select * order by P desc”,1)
出力結果
解説
降順(大きい順)に並べ替えるには「order by 列 desc」と指定します。
複数の列でorder byを指定する方法
order byでの並べ替えは複数列指定することもできます。
先程、降順に並べ替えた結果で金額が同じ行が存在します(画像内の赤い部分)。
金額が同じ場合は商品IDが小さい順に更に並べ替えてみましょう。
関数を以下のように変更します。
=QUERY(J4:P14,”select * order by P desc, M asc”,1)
これで行が並び変わりました。
order byで複数列を指定する場合は、並べ替えの対象列とソート方法をセットに「,(カンマ)」で繋ぐようにしましょう。
order by 列 asc/desc , 列 asc/desc
空白以外の結果を並べ替えるには
QUERY関数の第二引数にorder byだけを指定していると、空白行も抽出してしまいます。
空白の行を除外して並べ替えるには、where句で条件を指定してあげましょう。
=QUERY(J4:P14,”where P is not null order by P desc”,1)
まとめ
今回はスプレッドシートのQUERY関数で抽出したデータを並べ替える方法をご紹介しました。
わざわざフィルタ機能を使う必要もないので、ぜひ活用してください。
QUERY関数の使い方
ー | クエリ | 解説 |
---|---|---|
基礎 | select | 抽出する列を指定する |
基礎 | where | 抽出する条件を指定する |
基礎 | order by | 抽出するデータの並び替えを行う |
基礎 | group by | 抽出する列のデータ集計を行う |
基礎 | label | 抽出するデータの見出しを変更する |
応用 | ー | IMPORTRANGE関数と組み合わせて別シートを参照する方法 |
応用 | ー | 複数の範囲・シートを結合させる方法 |
応用 | where | 空白行だけを抽出・除外する方法 |
応用 | where | 複数の条件を指定する方法 |
応用 | where | 条件指定をセル参照にする方法 |
応用 | where | 条件指定に日付を使う方法 |