エクセルのSORT関数を使ってデータを昇順または降順に並べ替える方法や、複数列を基準として並び替えする方法をご紹介します。SORT関数が使えない場合にVLOOKUP関数で代用して並び替えする方法についても解説しているので、ぜひ参考にしてみてください。
SORT関数の使い方
SORT関数は Microsoft 365 または Excel 2021 以降のバージョンで使えます。Excel 2019 以前の場合は、SORT関数が使えない場合の代用方法をご参照ください。
SORT関数とは?
SORT関数は指定した範囲を、並べ替える列を基準として指定した順序で並び替えます。範囲には並び替え後に取得する列を、すべて指定してください。
例えば SORT(A2:A6,3,-1,FALSE) なら 3 列目(価格)を基準として、範囲を降順に並び替えます。
SORT関数の構成要素:(範囲, [並べ替える列], [順序], [基準方向])
並び替える列
並び替えの基準とする列または行を、範囲の先頭から数えた数値で指定します。省略すると範囲内の1列目または1行目を基準として、範囲を並び替えます。
順序
基準列の並び替え方を、1 または -1 の数値で指定します。
- 1 または 省略:昇順(小さい順)に並び替えます。
- 0:降順(大きい順)に並び替えます。
基準方向
範囲に指定したデータの方向を、TRUE または FALSE の論理値で指定します。
- TRUE(1):範囲を列で並び替えるため、横方向のデータに使用します。
- FALSE(0)または省略:範囲を行で並び替えるため、縦方向のデータに使用します。
SORT関数に複数列を指定する方法
並び替える列に中括弧を入力し、 {3,1} のように優先度順に列を指定してください。
次にそれぞれの列に対応する並び替え順序を、同じように中括弧で入力します。
例えば SORT(A2:C6,{3,1},{-1,1}) ならまず3列目(価格)を降順に並べ替え、価格が同じなら1列目(ID)を昇順で並べ替えます。
SORT関数が使えない場合の代用方法
まず範囲の左側に列を挿入し、RANK関数でそれぞれの数値の順位を取得します。
RANK関数は指定した数値を、範囲内で比較したときの順位で返します。オートフィルで数式をコピーするので、RANK(C2,$C$2:$C$6,0) のように範囲のみ固定してください。
RANK関数の構成要素:(数値, 範囲, [順序])
次に任意の列に、1、2、3、4… の順位番号を用意します。
最後に順位番号を検索値として、VLOOKUP関数で値を抽出します。VLOOKUP関数は範囲の1列目を検索し、検索値と一致する最初の行を指定した列から返します。
例えば VLOOKUP($E2,$A$2:$C$6,2,FALSE) なら、抽出結果はRANKが 1 の「メロン」です。
VLOOKUP関数の構成要素:(検索値, 範囲, 列番号, [検索の型])
検索値は $E2 のように列記号を固定し、範囲は列記号・行番号ともに固定しておきます。
これにより入力したVLOOKUP関数を隣の行にコピーすると、列番号を変更するだけでランキング順の価格の抽出も可能です。
同順位が存在する場合については、順位で並び替えする方法 で詳しく解説しています。