Excel リストを複数の基準列を指定して並び替える(SORTBY関数)

2020年5月12日

SORTBY関数は2019年に実装されたスピルの関連関数で、

指定の一覧表を特定列の順序で並び替える関数です。

データの並び替えの関数版に近い働きをします。

この記事ではSORTBY関数の使い方と

既存機能(データの並び替え)及び、

同時期に実装されたSORT関数との比較を紹介します。

仕様

=SORTBY(配列,基準配列1,並び替え順序1, ~ ,基準配列126,並び替え順序126)

引数省略時の値説明
配列省略不可並び替える範囲を指定。
基準配列1~126後述並び替える基準とする列を範囲で指定
並び替え順序1~1261並び替え順序を指定
・ 1…昇順
・-1…降順

配列と基準配列1は必須ですが、それ以降は任意です。

並び替え順序は未指定も可能ですが

1は省略、2以降は空白指定のみ可とややこしいため

対応する基準配列と並び替え順序は

セットで指定することを推奨します。

使用例

並び替え後のリストを表示する先頭のセルに

関数を入力すると引数1に指定したセル範囲が

並び替えられた結果が表示されます。

基準配列と並び替え順序のセットは1→126の順に適用されます。

この数式を入力したセル以外にも関数が自動拡大されますが、

最初のセル以外はゴーストと呼ばれるセルで編集不可能です。

(編集すると#SPILLエラー

種類の昇順、値段の降順に並び替える例
種類の昇順、値段の降順に並び替える例

他の機能との比較

SORT関数

同時期に追加されたSORT関数との違いは下の通りです。

比較点SORT関数SORTBY関数
並び替えの基準× 1列のみ〇 1~126列
列の指定× 数値〇 列範囲
並び替えの方向〇 行(縦)・列(横)切替可能× 行(縦)方向のみ

SORT関数が有利な点は並び替えの方向を切り替えられることだけですが、

横方向に並び替えることはかなりレアケースなので

ほぼ利点になっていないと思われます。

よってSORTBY関数を使用し方向を変えたい場合は

コピー&ペーストで行列を入れ替えるほうが現実的でしょう。

並び替え

従来、並び替えを行う場合はデータの並び替えが選択肢でしたが、

そこにSORTBY関数が追加されました。

データの並び替えはデータを更新した場合

毎回、範囲や並び替え基準を設定する必要があるため

日次などのルーチンワークには煩わしさがありましたが、

SORTBY関数によって解消が見込めます。

逆に非定型作業ではこれまで通り、

データの並び替えを使う方が取り回しが良いでしょう。

ただしOffice365や2019以降でしかSORTBY関数は使えないため

それ以外のバージョンではデータの並び替えだけが選択肢です。

項目並び替えSORTBY関数
ルーチンワーク× 毎回、手作業で設定が必要。〇 数式を作成すれば流用可能。
非定型業務〇 調査業務など様々な条件で並び替える場合に向く。× 数式を作り変える必要があるため、様々な条件で並び替えたい場合には劣る。
Excelのバージョン〇 古いバージョンでも可能。× Office365や2019以降の新しいバージョンのみ。

FILTER関数と組み合わせる

FILTER関数の結果を引数1に指定することで、

その結果を並び替えることが可能です。

関連記事

Excel 関数の仕様と使い方の記事一覧