SORT関数について
スピル系の関数、第二弾は SORT関数(ソート関数) です。
「ソート」は英語で「並び替え」。Excel には、もともと [データ] タブ に「並べ替え」というメニュー機能がありました。
SORT関数は、これを 数式でやってしまう 関数です。
メニュー機能と何が違うのか? ── 元のデータに手を加えずに、別の場所に並び替えた結果を表示できる のが、SORT関数の良いところです。元のデータはそのまま、参照側だけが並び替えられる、というイメージです。

SORT関数の構文
=SORT(配列,並び替えインデックス,並べ替え順序,並び替え基準)
引数は4つ。第1引数の「配列」と、第3引数の「並び替え順序」がメインです。
最後に第2引数「並び替えインデックス」を使います。VLOOKUP関数の列番号を思い出しておいてください。

具体例で見てみる:昇順
テストの点数を、昇順(小さい順)に並び替えてみます。
:::excel
A1=点数
A2=80
A3=65
A4=92
A5=58
A6=73
:::
C2 セルに次の数式を入れます。
=SORT(A2:A6)
結果は、

C2 に数式を1つ入れただけで、A列の点数が 小さい順 に並び替えられて C列に表示されました。これもスピルですね。
注目してほしいのは、A列(元データ)は何も変わっていない こと。並び替えの結果だけが、別の場所に表示されています。
降順にしたいとき:第3引数を「-1」に
「大きい順(降順)」に並び替えたいときは、第3引数を使います。
=SORT(配列, 並び替えインデックス, 並び替え順序)
降順にするには、3つ目の引数に -1 を指定します。
=SORT(A2:A6,, -1)

結果:

今度は 大きい順 に並びました。
「1=昇順、-1=降順」── マイナスが付いたら逆方向、と覚えてください。
文字列も並び替えできる
数値だけでなく、文字列(あいうえお順) でも並び替えできます。
:::excel
A1=社員名
A2=田中
A3=鈴木
A4=佐藤
A5=山田
A6=高橋
:::
=SORT(A2:A6)
結果:佐藤 → 鈴木 → 高橋 → 田中 → 山田
五十音順で並び替えられます。-1 を指定すれば、逆順(山田 → 田中 → 高橋 → 鈴木 → 佐藤)になります。
ただし、漢字は変換したひらがなが基準 となりますので、名前の並び替えはローマ字やフリガナ列で行うと確実です。
また、アルファベット→カタカナ→ひらがな→漢字 という優先度で並び替えがされます。
表全体を並び替える
範囲を 複数列 にすれば、表全体を並び替えることもできます。
:::excel
A1=社員名
B1=点数
A2=田中
B2=80
A3=鈴木
B3=65
A4=佐藤
B4=92
A5=山田
B5=58
A6=高橋
B6=73
:::
第2引数を使い、点数(B列)を基準に、そして表全体を 降順 に並び替えます。関数は以下のようになります。
=SORT(A2:B6, 2, -1)
- 配列:A2:B6(社員名と点数のセット)
- 並び替えインデックス:2(範囲の中の2列目=点数)
- 並び替えの順序:-1(降順)
結果:

点数が高い順に、社員名と点数のセットで並び替えられました。「2列目を基準に、降順」 という指定だけで、表全体がきれいに整います。
VLOOKUPの列番号と同じ仕組みの引数でしたね。
UNIQUE と組み合わせる
前回学んだ UNIQUE と SORT は、相性のいいコンビです。
=SORT(UNIQUE(A2:A10))
=UNIQUE(SORT(A2:A10))
どっちでもOKです。「重複を除いて、さらに並び替えた一覧」が、関数2つで完成します。
データの整理が必要なときに、本当によく使う組み合わせです。「UNIQUE で抜き出して、SORT で並べる」── 覚えておくと、いろいろな場面で役立ちます。
まとめ
- SORT関数で、範囲を並び替えた結果 を別の場所に表示
- 構文:=SORT(配列, 並び替えインデックス, 並び替えの順序,並び替え基準)
- 順序は 1=昇順(デフォルト) / -1=降順
- 元のデータはそのまま、参照側だけが並び替えられる
- 表全体を、特定の列を基準に並び替えることもできる
- UNIQUE と組み合わせる と、データ整形の定番コンボに
第4引数「並び替え基準」は使いませんでしたが、利用頻度は少ないので無視でOKです。
次回は FILTER関数。条件で絞り込むスピル関数です。これも単体で便利ですし、UNIQUE / SORT と組み合わせるとさらに強力になります。
ショートカット
※このレッスンに対応するショートカットはありません。