前回の記事では、SORT
関数を使って表全体を並べ替える方法を解説しました。今回は、その兄弟とも言えるもう一つの強力な並べ替え関数、SORTBY
(ソートバイ)を紹介します。
SORTBY
関数は、SORT
関数と同様に動的な並べ替えを行いますが、「並べ替えの基準となる列」をより柔軟に指定できるという大きな特長があります。この違いを理解すれば、あなたのデータ分析スキルはさらに向上するでしょう。
今回のゴール:4月度売上表を「合計」列を基準に並べ替える
SORT
関数と同じく、以下の「4月度売上表」を、E列の「合計」金額が大きい順(降順)に並べ替えます。今回はこのお題をSORTBY
関数を使って解決してみましょう。
サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。
Excel-g735-1.xlsx (ダウンロード)
以下のサンプルデータを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関数の使い方
並べ替えた表を表示したい先頭のセル(例では G3
)に、以下の数式を一度だけ入力します。
Excel
=SORTBY(A3:E6, E3:E6, -1)
数式を入力してEnterキーを押すと、SORT
関数と同様に、結果が自動的に展開(スピル)され、合計の高い順に並べ替えられた表が完成します。
数式の解説
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つの関数を使い分け、データ分析の効率を最大限に高めましょう。
コメント