前回の記事では、SORT関数を使って表全体を並べ替える方法を解説しました。今回は、その兄弟とも言えるもう一つの強力な並べ替え関数、SORTBY(ソートバイ)を紹介します。
SORT関数とSORTBY関数の違いは、並べ替えの基準の指定のしかたです。SORT関数は列番号(例: 5)で、SORTBY関数はセル範囲(例: E3:E6)で指定します。この記事の例では、どちらも結果は同じです。
SORTBY関数は、SORT関数と同様に動的な並べ替えを行いますが、「並べ替えの基準となる列」をより柔軟に指定できるという大きな特長があります。この違いを理解すれば、あなたのデータ分析スキルはさらに向上するでしょう。
今回のゴール:4月度売上表を「合計」列を基準に並べ替える
SORT関数と同じく、以下の「4月度売上表」を、E列の「合計」金額が大きい順(降順)に並べ替えます。今回はこのお題をSORTBY関数を使って解決してみましょう。
解決策:SORTBY関数の使い方
手順:G3 に SORTBY の式を入れて Enter
4月度売上表(A3:E6)を、合計(E 列)の高い順に並べ替えて G3 から表示します。 G3 に次の式を入力して、Enter キーを押します❶。
=SORTBY(A3:E6,E3:E6,-1) A3:E6E3:E6-1紫は「列の番号」ではなく「基準の列の範囲」で指定します。並べ替えの基準を表の外の列にすることもできます。例:名簿 A2:C40 を、点数(D 列)の高い順に
=SORTBY(A2:C40,D2:D40,-1) - Microsoft 365・Excel 2021 以降で使えます。結果が広がる先のセルに何か入っていると #SPILL! になります。
- 配列と基準配列は、同じ行(ここでは 3〜6 行目)にそろえます。

確認:合計の大きい桔梗店から順に並んだ

答えは 桔梗店(5,379)が先頭の表 になりました❷。式は、次の順に計算しています。
- 合計の列(E3:E6)の値を比べる
⇒ 5,379・4,742・4,542・3,604 - 大きい順(-1)に、行ごと並べ替えて G3 から表示する
⇒ 桔梗店 → 朝顔店 → 紫陽花店 → あやめ店
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。
以下のサンプルデータをExcelシートにコピーして、操作の準備をしてください。
| A | B | C | D | E | |
| 1 | 4月度売上表 | (万円) | |||
| 2 | 店舗 | 衣料品 | 雑貨 | 食品 | 合計 |
| 3 | 朝顔店 | 868 | 1,951 | 1,923 | 4,742 |
| 4 | あやめ店 | 1,031 | 1,687 | 886 | 3,604 |
| 5 | 紫陽花店 | 1,236 | 1,806 | 1,500 | 4,542 |
| 6 | 桔梗店 | 1,738 | 1,586 | 2,055 | 5,379 |
数式の解説
SORTBY関数の基本的な構文は次の通りです。
SORTBY(配列,基準配列1,[順序1],…)
- 配列 (array):
A3:E6- 並べ替えた結果として表示したいデータ範囲全体を指定します。
SORT関数と同じです。
- 並べ替えた結果として表示したいデータ範囲全体を指定します。
- 基準配列1 (by_array1):
E3:E6- 【最重要ポイント】 並べ替えの基準として使用するセル範囲を指定します。今回は「合計」列を基準にしたいので、
E3:E6の範囲を指定します。この配列の行数は、引数1の「配列」の行数と一致している必要があります。
- 【最重要ポイント】 並べ替えの基準として使用するセル範囲を指定します。今回は「合計」列を基準にしたいので、
- 順序1 (sort_order1):
-1- 基準配列1をどのような順序で並べ替えるかを指定します。
1または省略:昇順(小さい順)-1:降順(大きい順)
- 今回は合計が「高い順」なので、「
-1」(降順)を指定します。
- 基準配列1をどのような順序で並べ替えるかを指定します。
この数式は、「A3:E6の範囲を、E3:E6(合計列)の値に基づいて、降順(-1)で並べ替えてください」という命令を実行しています。
SORTとSORTBY、どちらを使うべき?
どちらも似ていますが、明確な違いがあります。
SORT関数: 並べ替えの基準を列番号(例:5)で指定します。シンプルで分かりやすいのが利点です。SORTBY関数: 並べ替えの基準をセル範囲(例:E3:E6)で指定します。これにより、数式がどの列を参照しているか直感的に分かりやすく、列の挿入などによるエラーが起きにくいという利点があります。また、並べ替えの基準が、結果として表示したい表の外側にあっても良いため、より柔軟な使い方が可能です。
例えば、「社員リスト(表示したい配列)を、別の場所にある入社年月日リスト(基準配列)の順に並べ替える」といった場合にSORTBYは真価を発揮します。
まとめ
SORTBY関数は、SORT関数よりもセマンティック(意味が分かりやすい)で、柔軟性の高い並べ替えを実現します。どちらの関数も非常に強力ですが、特に並べ替えの基準が複雑な場合や、数式の可読性を高めたい場合にはSORTBY関数がおすすめです。
状況に応じてこの2つの関数を使い分け、データ分析の効率を最大限に高めましょう。
動的配列・スピル系の関数の全体像は、こちらのまとめで整理しています。

SORTBY関数のよくある質問
SORT関数とSORTBY関数の違いは?
SORT関数は並べ替えの基準を列番号(例: 5)で、SORTBY関数はセル範囲(例: E3:E6)で指定します。SORTBY関数は、並べ替えの基準が、表示したい表の外側にあっても使えます。
SORTBY関数で大きい順(降順)に並べ替えるには?
並べ替え順序に -1 を指定します。=SORTBY(A3:E6,E3:E6,-1) は、売上表を合計の列の大きい順に並べ替えます。1 または省略すると、小さい順(昇順)になります。
SORTBY関数が使えるExcelのバージョンは?
Microsoft 365・Excel 2021 以降で使えます。結果が広がる先のセルに何か入っていると、#SPILL! になります。
