スプレッドシートの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行目 | 田中 | 東京 | ノートPC | 150000 |
| 3行目 | 佐藤 | 大阪 | モニター | 45000 |
| 4行目 | 鈴木 | 東京 | キーボード | 8000 |
| 5行目 | 高橋 | 名古屋 | ノートPC | 140000 |
| 6行目 | 伊藤 | 大阪 | マウス | 3000 |
金額の大きい順(降順)に並べ替える 場合、空いているセル(たとえばF2)に次の数式を入力します。
=SORT(A2:D6, 4, FALSE)
第2引数の 4 は「4列目(金額)で並べ替え」、第3引数の FALSE は「降順」を意味します。
結果はこうなります。
| F列 | G列 | H列 | I列 |
|---|---|---|---|
| 田中 | 東京 | ノートPC | 150000 |
| 高橋 | 名古屋 | ノートPC | 140000 |
| 佐藤 | 大阪 | モニター | 45000 |
| 鈴木 | 東京 | キーボード | 8000 |
| 伊藤 | 大阪 | マウス | 3000 |
元のデータはまったく変わりません。金額が大きい順に、別のセルに自動で結果が表示されました。
複数条件で並べ替える
SORT関数では、並べ替え基準を複数指定できます。「支店で昇順 → 同じ支店の中は金額で降順」のように書けます。
=SORT(A2:D6, 2, TRUE, 4, FALSE)
「2列目(支店)を昇順」「4列目(金額)を降順」のペアを続けて指定します。
SORTN関数の書き方と基本的な使い方
SORTN関数の構文
=SORTN(範囲, [n], [表示順の同順位モード], [並べ替え列, 昇順か, ...])
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 範囲 | 必須 | 並べ替えたいデータ範囲 |
| n | 任意 | 返す行数。省略すると1 |
| 表示順の同順位モード | 任意 | 同じ値があるときの扱い(後述)。省略すると0 |
| 並べ替え列, 昇順か | 任意 | 並べ替え基準。SORT関数と同じ指定方法 |
同順位モード の選択肢は次のとおりです。
| モード値 | 動作 |
|---|---|
| 0(既定) | N件返す。同順位がある場合でもN件ちょうど |
| 1 | N件+同順位を含めてすべて返す |
| 2 | 重複する行を除去してからN件返す |
| 3 | 指定した列で最も頻度が高い値をN種類返す |
SORTN関数の基本例
先ほどの売上データから 金額トップ3 を取り出すには、次のように入力します。
=SORTN(A2:D6, 3, 0, 4, FALSE)
第2引数 3 が「3件返す」、第5引数の 4, FALSE が「金額列を降順」です。
結果は金額上位3件の行が返ります。
| F列 | G列 | H列 | I列 |
|---|---|---|---|
| 田中 | 東京 | ノートPC | 150000 |
| 高橋 | 名古屋 | ノートPC | 140000 |
| 佐藤 | 大阪 | モニター | 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列 |
|---|---|---|---|
| 田中 | 東京 | ノートPC | 150000 |
| 高橋 | 名古屋 | ノートPC | 140000 |
| 佐藤 | 大阪 | モニター | 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/A | FILTER関数が該当なしを返した | =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 / FALSE | 1(昇順)/ -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の技を発信しています。
