SORT関数とは
SORT関数は、表の内容を指定した列の基準で自動的に並べ替えたコピーを作成する関数です。Microsoft 365のExcelで利用できます。
通常の「並べ替え」コマンドは元の表そのものの順番を変えてしまい、並べ替えのたびに操作が必要です。SORT関数なら元データはそのまま。出力側は元データの更新に追従して、常に並べ替えられた状態を保ちます。ランキング表・成績一覧・売上トップリストなど、更新のたびに並べ直したい表に最適です。

基本的な使い方
書式は =SORT(配列, [並べ替えインデックス], [並べ替え順序], [by_col]) です。第2引数以降は省略できます。
引数の意味
- 配列:並べ替え対象の表の範囲
- 並べ替えインデックス:何列目を基準にするか(既定は1)
- 並べ替え順序:1=昇順、-1=降順(既定は昇順)
- by_col:TRUEで行方向(横)の並べ替え(既定はFALSE=縦)
入力手順
- 結果を出力したい先頭セルを選択する
- =SORT( と入力し、表の範囲を指定する
- 基準列をカンマで指定する(例:2列目なら「2」)
- 降順にしたい場合は「-1」を指定してEnterを押す
たとえば得点表を点数の高い順に並べるには、=SORT(A2:B5, 2, -1) と入力します。結果はスピルで展開されるため、出力先の範囲を事前に選ぶ必要はありません。

SORTBY関数で別の列を基準に並べ替える
「表はA列〜C列のまま表示したいが、並べ替えの基準は別の列にしたい」という場合はSORTBY関数が便利です。
=SORTBY(A2:C5, D2:D5, -1)
こうすると、表には表示されないD列(例:調整後の得点)を基準に降順で並べ替えられます。隠し条件でランキングを作りたいときに役立ちます。SORTBYでは基準を複数指定することもでき、第1キー・第2キーという多段ソートが書けます。
=SORTBY(A2:C10, B2:B10, 1, C2:C10, -1) ←部品昇順、点数降順
実務で役立つ活用テクニック
FILTER関数と組み合わせてトップNリストを作る
抽出してから並べ替える処理は、FILTERの外側をSORTで包むだけで書けます。
=SORT(FILTER(A2:C100, B2:B100="東京"), 3, -1)
UNIQUE関数と組み合わせて名寄せ一覧を作る
=SORT(UNIQUE(A2:A100)) と書くと、「重複なし・昇順」のリストが完成します。ドロップダウンリストの選択肢や、帳票の分類一覧にそのまま使えます。
横(行方向)の並べ替え
第4引数by_colにTRUEを指定すると、行を基準に横方向へ並べ替えられます。日付が横に並ぶカレンダー形式の表で使います。
よくあるエラーと対処法
#SPILL!エラーが出る
並べ替え結果を展開する範囲に既に値が入っていると表示されます。出力先を空けてください。
#VALUE!エラーが出る
並べ替えインデックスが表の列数を超えている、または並べ替え順序に1/-1以外の値を指定したときに表示されます。引数を見直しましょう。
日本語の並び順が想定と違う
日本語は既定で「五十音順(文字コード順)」になります。ふりがな列(フリガナ)を別に作り、その列を基準に並べ替えると意図した順番になります。また、数値として比較すべき列が「文字列」として入力されていると、10より2が大きいと判定される(文字列比較)ため、セルの書式を数値に戻してください。
元の表と結果の表が混在して分かりにくい
出力先は元の表から1列以上空けると見やすくなります。見出し行も含めて並べ替えたい場合は、配列に見出しから指定し、実データ側の条件と整合させます。
よくある質問
Q. 同点の場合の順番はどう決まりますか?
A. 元の表での登場順が維持されます(安定した並べ替え)。同点を厳密に順序付けしたい場合は、第2キーをSORTBY関数で指定してください。
Q. 3列目を基準に並べ替えられますか?
A. できます。第2引数(並べ替えインデックス)を3にするだけです。基準列を変えるだけで式の構造は変わりません。
Q. 結果の表に見出しを付けたい場合は?
A. 配列に見出し行を含めないまま、出力側の上の行に見出しを手入力するのが安全です。見出し行ごと並べ替えると、見出しがデータとして混ざる恐れがあります。
まとめ
SORT関数は元表を壊さず、更新に自動追従する並べ替えコピーを作れる関数です。SORTBY関数を使えば表に表示しない基準列での並べ替えや多段ソートも可能です。FILTER・UNIQUEと組み合わせれば「抽出→重複削除→並べ替え」の処理パイプラインが1つの式で書けます。日々更新されるランキングやレポートにぜひ導入してください。
