スプレッドシートのSORT・SORTN・SORTBY関数の使い方|データを自動で並べ替える

スポンサーリンク

スプレッドシートのSORT・SORTN・SORTBY関数の使い方|データを自動で並べ替える

「売上データを金額順に並べ替えたい」「上位5件だけ取り出したい」。こんな場面、仕事でよくありますよね。

フィルター機能で手動ソートする方法もありますが、データが更新されるたびにやり直すのは面倒です。しかも元データの並び順が変わってしまうのも困りものです。

そんなときに使えるのが SORT・SORTN・SORTBY関数 です。元データを変えずに、並べ替えた結果を自動で表示してくれます。

この記事では、3つの関数の基本から使い分け、FILTER関数との組み合わせまで紹介します。

SORT・SORTN・SORTBY関数とは?

Googleスプレッドシートには、並べ替え専用の関数が3つ用意されています。まずはざっくりと違いを押さえておきましょう。

関数名読み方ひとこと説明使う場面
SORTソート指定した列を基準にデータを並べ替える売上順・日付順など基本的な並べ替え
SORTNソートエヌ並べ替えた結果から上位N件だけ返すトップ5・ワースト3など件数指定の抽出
SORTBYソートバイ別の列を基準にして並べ替える基準列が表の外にある・複数基準の並べ替え

3つとも 元データはそのまま で、別のセルに結果を自動で展開(スピル)してくれます。

NOTE

SORT・SORTN・SORTBY関数はGoogleスプレッドシート独自の関数です。Excelにも同名のSORT・SORTBY関数がありますが、引数の仕様が異なります(後述)。SORTNはExcelにはありません。

SORT関数の書き方と基本的な使い方

SORT関数の構文

=SORT(範囲, 並べ替え列, 昇順か, [並べ替え列2, 昇順か2, ...])
引数必須/任意説明
範囲必須並べ替えたいデータ範囲(例: A2:D100
並べ替え列任意基準にする列番号(1始まり)。省略すると1列目
昇順か任意TRUE = 昇順 / FALSE = 降順。省略すると昇順
並べ替え列2, 昇順か2任意2つ目以降の並べ替え基準。ペアで繰り返し追加できる

TIP

引数がたくさんありますが、必須は「範囲」だけです。=SORT(A2:D10) のように範囲だけ指定すると、1列目を基準に昇順で並べ替えます。

SORT関数の基本例

次のような売上データで説明します。

 A列(担当者)B列(支店)C列(商品)D列(金額)
2行目田中東京ノートPC150000
3行目佐藤大阪モニター45000
4行目鈴木東京キーボード8000
5行目高橋名古屋ノートPC140000
6行目伊藤大阪マウス3000

金額の大きい順(降順)に並べ替える 場合、空いているセル(たとえばF2)に次の数式を入力します。

=SORT(A2:D6, 4, FALSE)

第2引数の 4 は「4列目(金額)で並べ替え」、第3引数の FALSE は「降順」を意味します。

結果はこうなります。

F列G列H列I列
田中東京ノートPC150000
高橋名古屋ノートPC140000
佐藤大阪モニター45000
鈴木東京キーボード8000
伊藤大阪マウス3000

元のデータはまったく変わりません。金額が大きい順に、別のセルに自動で結果が表示されました。

複数条件で並べ替える

SORT関数では、並べ替え基準を複数指定できます。「支店で昇順 → 同じ支店の中は金額で降順」のように書けます。

=SORT(A2:D6, 2, TRUE, 4, FALSE)

「2列目(支店)を昇順」「4列目(金額)を降順」のペアを続けて指定します。

SORTN関数の書き方と基本的な使い方

SORTN関数の構文

=SORTN(範囲, [n], [表示順の同順位モード], [並べ替え列, 昇順か, ...])
引数必須/任意説明
範囲必須並べ替えたいデータ範囲
n任意返す行数。省略すると1
表示順の同順位モード任意同じ値があるときの扱い(後述)。省略すると0
並べ替え列, 昇順か任意並べ替え基準。SORT関数と同じ指定方法

同順位モード の選択肢は次のとおりです。

モード値動作
0(既定)N件返す。同順位がある場合でもN件ちょうど
1N件+同順位を含めてすべて返す
2重複する行を除去してからN件返す
3指定した列で最も頻度が高い値をN種類返す

SORTN関数の基本例

先ほどの売上データから 金額トップ3 を取り出すには、次のように入力します。

=SORTN(A2:D6, 3, 0, 4, FALSE)

第2引数 3 が「3件返す」、第5引数の 4, FALSE が「金額列を降順」です。

結果は金額上位3件の行が返ります。

F列G列H列I列
田中東京ノートPC150000
高橋名古屋ノートPC140000
佐藤大阪モニター45000

SORT関数では全件が返りますが、SORTNなら 必要な件数だけ 取り出せます。

TIP

SORTNはGoogleスプレッドシート固有の関数です。Excelには同等の関数がありません。Excelで同じことをしたい場合は、SORT関数の結果をINDEX関数やSEQUENCE関数で上位N行に絞る方法があります。

同順位モードの使いどころ

モード 1 を使うと、同じ金額のデータがあるときにすべて含めて返します。

=SORTN(A2:D10, 3, 1, 4, FALSE)

たとえば3位と4位が同額なら、4件返ります。「上位3位まで全員表彰」のような場面で便利です。

モード 2 は重複行を除去してからN件返します。一意の値だけを取り出したいときに使えます。

SORTBY関数の書き方と基本的な使い方

SORTBY関数の構文

=SORTBY(範囲, 並べ替え基準範囲1, 順序1, [並べ替え基準範囲2, 順序2, ...])
引数必須/任意説明
範囲必須並べ替えたいデータ範囲
並べ替え基準範囲1必須基準にする列の範囲(例: D2:D100
順序1任意1 = 昇順 / -1 = 降順。省略すると昇順
並べ替え基準範囲2, 順序2任意2つ目以降の並べ替え基準

NOTE

SORTBY関数の順序指定は 1 / -1 です。SORT関数の TRUE / FALSE とは異なるので注意してください。

SORTBY関数の基本例

売上データを 金額の大きい順 に並べ替えるには、次のように入力します。

=SORTBY(A2:D6, D2:D6, -1)

SORT関数との違いは、基準を 列番号ではなく範囲で指定する 点です。D2:D6 と範囲で直接指定するので、列の位置が変わっても数式が壊れにくいのがメリットです。

結果はSORT関数と同じです。

F列G列H列I列
田中東京ノートPC150000
高橋名古屋ノートPC140000
佐藤大阪モニター45000
鈴木東京キーボード8000
伊藤大阪マウス3000

複数基準で並べ替える

SORTBY関数で複数の基準を指定するのも簡単です。

=SORTBY(A2:D6, B2:B6, 1, D2:D6, -1)

「B列(支店)を昇順 → 同じ支店の中はD列(金額)を降順」で並べ替えます。

SORT関数では =SORT(A2:D6, 2, TRUE, 4, FALSE) と書きます。一方、SORTBY関数は基準列を範囲で直接指定します。列番号を数える必要がありません。

SORT関数とSORTBY関数の使い分け

どちらを使うか迷ったときの判断基準はシンプルです。

判断基準SORT関数SORTBY関数
基準の指定方法列番号(1, 2, 3…)列範囲(B2:B100)
列の追加・削除に強いか列番号がずれる可能性あり範囲指定なのでずれにくい
数式の見やすさ短くてシンプル基準列が明示的でわかりやすい
おすすめの場面列構成が固定の表列の変更がありそうな表

迷ったらSORTBY関数を使っておけば安心です。列の挿入・削除に強いので、メンテナンスしやすい数式になります。

SORT系関数の実践的な使い方・応用例

パターン1:FILTER+SORTで条件付き並べ替え

FILTER関数で抽出した結果を並べ替えるのは定番の組み合わせです。

「東京支店の売上データだけを金額順に表示する」場合は、次のように書きます。

=SORT(FILTER(A2:D6, B2:B6="東京"), 4, FALSE)

FILTER関数で東京のデータだけを取り出し、SORT関数で金額列の降順に並べます。抽出と並べ替えを1つの数式で完結できるのでとても便利です。

TIP

SORT関数の列番号は FILTER結果の中での列番号 です。元データのシート上の列番号ではないので注意してください。

パターン2:SORTNで売上トップ3を自動表示

ダッシュボードに「今月の売上トップ3」を表示したいときは、SORTNが最適です。

=SORTN(A2:D100, 3, 0, 4, FALSE)

データが増えても常に上位3件だけが表示されます。手動でランキングを更新する必要がありません。

パターン3:SORTBYで別シートの評価順に並べ替える

評価データが別シートにある場合でも、SORTBY関数なら対応できます。

=SORTBY(A2:C10, '評価シート'!B2:B10, -1)

A2:C10の社員データを、「評価シート」のB列にある評価点の降順で並べ替えます。

基準列が表の範囲に含まれていなくても使えるのが、SORTBY関数の大きな強みです。

パターン4:プルダウン+FILTERで動的な並べ替えレポート

プルダウンでカテゴリを選ぶと、該当データだけが金額順で表示される仕組みを作れます。

=SORT(FILTER(A2:D100, B2:B100=G1), 4, FALSE)

G1セルに プルダウン で支店名を設定しておきます。選んだ支店のデータだけが金額の大きい順に自動表示されます。

パターン5:SORTNのモード3で「最も多い商品」を抽出

SORTNのモード 3 を使うと、出現頻度が高い値を取り出せます。

=SORTN(C2:C100, 3, 3, C2:C100, TRUE)

C列(商品名)の中から、最も売れている商品名を上位3種類返します。重複データから人気ランキングを作りたいときに便利です。

よくあるエラーと対処法

エラー / 症状原因対処法
#REF!結果を展開するセルにデータがあるスピル先の下方向を十分に空ける
#VALUE!範囲サイズが合っていないSORTBY関数の基準範囲と元データの行数を揃える
#N/AFILTER関数が該当なしを返した=IFERROR(SORT(FILTER(...)), "該当データなし") で対処
並び順がおかしい数値が文字列として入力されているVALUE関数で数値に変換してから並べ替える
日付の並びがずれる日付が文字列になっているDATEVALUE関数で日付型に変換する
SORTNの結果が期待と違う同順位モードの指定ミス第3引数の0/1/2/3を確認する

TIP

#REF! エラーはスピル関数で最もよくあるエラーです。数式の結果が展開される先にデータがあると発生します。出力先の下方向に十分な空きを確保してください。

Excelの並べ替え関数との違い

スプレッドシートとExcelでは、同名の関数でも引数の仕様が異なります。

比較項目GoogleスプレッドシートExcel(Microsoft 365)
SORT関数の構文=SORT(範囲, 列番号, 昇順か)=SORT(配列, 列Index, 順序, 方向)
SORT関数の昇順/降順TRUE / FALSE1(昇順)/ -1(降順)
SORT関数の複数基準列番号+昇順のペアを繰り返す配列定数 {1,3} で複数列指定
SORTN関数あり(固有機能)なし
SORTBY関数ありあり(ほぼ同じ構文)

特に注意したいのは SORT関数の引数の違い です。スプレッドシートでは昇順/降順を TRUE/FALSE で指定します。一方、Excelでは 1/-1 で指定します。

また、SORTNはGoogleスプレッドシート固有の関数です。「上位N件だけ取り出す」機能はExcelにはありません。Excelで同じことをするには、SORT関数+INDEX関数+SEQUENCE関数を組み合わせる必要があります。

SORTBY関数は両方に存在し、構文もほぼ同じです。スプレッドシートとExcelを併用する環境では、SORTBY関数が最も互換性が高いといえます。

まとめ

この記事では、Googleスプレッドシートの並べ替え関数3つの使い方を解説しました。

  • SORT関数: 列番号を基準にデータを並べ替え。シンプルな場面に最適
  • SORTN関数: 上位N件だけ取り出す。ランキング表示に便利
  • SORTBY関数: 列範囲を基準に並べ替え。列の変更に強い
  • FILTER連携: =SORT(FILTER(...)) で条件抽出+並べ替えが1つの数式で完結
  • Excel との違い: SORT関数は引数が異なり、SORTNはシート固有

3つの中で迷ったら、まずSORT関数から試してみてください。シンプルな並べ替えならこれで十分です。

件数を限定したいならSORTN、列の変更が多い表ならSORTBYを選びましょう。


この記事を書いた人

biz-tactics編集部。事務職の現場で本当に使えるExcel・スプレッドシート・AIの技を発信しています。

関連記事

タイトルとURLをコピーしました