【QUERY関数】ORDER BY句で並べ替え!複数条件も

QUERYk関数のORDER BY句で並び替え

GoogleスプレッドシートのQUERY関数を使うと、大量のデータから必要な情報だけを抽出したり、並べ替えたり、集計したりと、さまざまなデータ操作を行うことができます。この記事ではデータの並べ替えができる「ORDER BY句」について解説しているので、ぜひ参考にしてみてください。

スポンサーリンク

QUERY関数とは?おさらい

【QUERY関数】ORDER BY句で並べ替え!複数条件も

QUERY関数を使うと、クエリ(データに対して実行する「処理・命令」)や、関数を組み合わせることで、さまざまな方法でデータを抽出できます。

特に、QUERY関数を使う上で最も基本となるのが、SELECT句です。この句は「どの列を抽出するか」を指示するために使用します。

たとえば、データ範囲から「C列、B列」を記載の順番で抽出したい場合、数式は以下のようになります。

例:=QUERY(A2:C5,"SELECT C, B ")

QUERY関数の引数:(データ, クエリ, [見出し])

【QUERY関数】ORDER BY句で並べ替え!複数条件も

すべての列を抽出したい場合は、SELECT *のように、アスタリスク(*)を指定します。

ただし、SELECT句は、列の指定がない場合に基本的に省略されます。省略した場合、QUERY関数は自動的にすべての列を抽出対象とします。たとえば、データ範囲のすべての列から、B列が「りんご」の行だけを抽出したい場合、SELECT句を省略して次のように記述できます。

例:=QUERY(A4:C7,"WHERE B='りんご' ")

スポンサーリンク

ORDER BY句でデータを並べ替える方法

ORDER BY句は、指定した列の値を基準として、行全体を昇順または降順に並べ替えます。ただし、「ひらがな・漢字・カタカナ」が含まれるデータは、正しく並び替えできない場合があります。

昇順に並べ替える方法

【QUERY関数】ORDER BY句で並べ替え!複数条件も

昇順(数値の小さい順、五十音順)に並べ替えたい場合は、ORDER BY句の後にascを指定します。

たとえば、「商品名」を「価格」の昇順で並べ替えて抽出したい場合、数式は次のようになります。

例:=QUERY(A2:C5,"SELECT B ORDER BY C asc")

降順に並べ替える方法

昇順(数値の大きい順、五十音順の逆)に並べ替えたい場合は、ORDER BY句の後にdescを指定します。

たとえば、「商品名」を「価格」の降順で並べ替えて抽出したい場合、数式は次のようになります。

例:=QUERY(A2:C5,"SELECT B ORDER BY C desc")

スポンサーリンク

ORDER BY句を複数条件にする方法

【QUERY関数】ORDER BY句で並べ替え!複数条件も

ORDER BY句で複数の列を指定する場合、それぞれの列をカンマ(,)で区切って記述します。

このとき、左から順に並べ替えの優先度が高くなります。つまり、最初に指定した列で並べ替えが行われ、その値が同じ場合に限り、次に指定した列で並べ替えが行われます。

たとえば、商品名を「価格」の昇順で並べ替え、さらに価格が同じ場合は「日付」の昇順で並べ替えたい場合、数式は次のようになります。

例:=QUERY(A2:C5,"SELECT B ORDER BY C asc,A asc")

スポンサーリンク

並び替えるデータを空白以外にする方法

【QUERY関数】ORDER BY句で並べ替え!複数条件も

ORDER BY句で並べ替えたデータから、空白セルを除外したい場合は、WHERE句で「空白以外(is not null」の条件を付け加えます。

たとえば、A列~C列の範囲から、「商品名」を「価格」の昇順で並べ替え、さらに空白セルを含む行を除外したい場合、数式は次のようになります。

例:=QUERY(A2:C,"SELECT B WHERE B is not null ORDER BY C asc")

スポンサーリンク

並べ替えたデータを絞り込む(LIMIT句とOFFSET句)

QUERY関数のORDER BY句で並べ替えたデータから、さらに表示する行数を制限したり、特定の行から表示を開始したりするのに役立つのが、LIMIT句OFFSET句です。

LIMIT句の使い方

【QUERY関数】ORDER BY句で並べ替え!複数条件も

LIMIT句は、ORDER BY句で並べ替えたデータの「行数」を制限して表示します。つまり、結果の上位から指定した数の行だけを抽出したいときに使用します。

たとえば、「商品名」を「価格」の昇順で並べ替えた結果から、上位2行だけを抽出したい場合、数式は次のようになります。

例:=QUERY(A2:C5,"SELECT B ORDER BY C asc limit 2")

OFFSET句の使い方

【QUERY関数】ORDER BY句で並べ替え!複数条件も

OFFSET句は、ORDER BY句で並べ替えたデータの先頭から指定した数の行を「スキップ」して表示します。結果の「上位N行を除外して、それ以降の行を抽出したい」ときに使用します。

たとえば、「商品名」を「価格」の昇順で並べ替えた結果から、上位2行を除外し、3行目以降のデータを抽出したい場合、数式は次のようになります。

例:=QUERY(A2:C5,"SELECT B ORDER BY C asc offset 2")

LIMIT句とOFFSET句を組み合わせる方法

【QUERY関数】ORDER BY句で並べ替え!複数条件も

LIMIT句とOFFSET句を組み合わせは、ORDER BY句で並べ替えたデータの「中間部分」だけを表示したいときに使用します。

たとえば、「商品名」を「価格」の昇順で並べ替えた結果から、上位2行を除外し、その次の1行のみを抽出したい場合、数式は次のようになります。

例:=QUERY(A2:C5,"SELECT B ORDER BY C asc limit 1 offset 2")

スポンサーリンク

QUERY関数のその他のクエリ

今回はデータの並べ替え抽出に便利なORDER BY句LIMIT句OFFSET句の3つのクエリについてご紹介しました。QUERY関数で使えるクエリには、他にも以下のようなものがあります。

  • SELECT: 特定の列を指定した順序で抽出します。(詳細記事はこちら
  • WHERE: 指定した条件を満たすデータのみを抽出します。(詳細記事はこちら
  • GROUP BY: 指定した列の同じ要素ごとにデータを集計します。(詳細記事はこちら
  • PIVOT: GROUP BYで集計したデータに分類要素を追加し、表の形式を変換します。(詳細記事はこちら
  • ORDER BY: データを特定の列の値で並べ替えます。(この記事で解説)
  • LIMIT: 抽出する行数を指定した数に制限します。(この記事で解説)
  • OFFSET: 指定した数の最初の行をスキップします。(この記事で解説)
  • LABEL: 抽出した列のヘッダー名を任意の名前に変更します。(詳細記事はこちら
  • FORMAT: 特定の列の日付や数値などの表示形式を設定します。(詳細記事はこちら
  • OPTIONS: ヘッダーの行数や特定の書式設定を適用しないなどの追加オプションを設定します。
タイトルとURLをコピーしました