【スプレッドシート】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関数の使い方

スプレッドシート – QUERY関数の使い方まとめ

スクロールできます
クエリ解説
基礎select抽出する列を指定する
基礎where抽出する条件を指定する
基礎order by抽出するデータの並び替えを行う
基礎group by抽出する列のデータ集計を行う
基礎label抽出するデータの見出しを変更する
応用IMPORTRANGE関数と組み合わせて別シートを参照する方法
応用複数の範囲・シートを結合させる方法
応用where空白行だけを抽出・除外する方法
応用where複数の条件を指定する方法
応用where条件指定をセル参照にする方法
応用where条件指定に日付を使う方法
目次