
エクセルのSORT関数を使ってデータを並び替える基本の方法や、Excel 2019以前のSORT関数が使えない場合に、VLOOKUP関数で代用する方法を紹介します。同じ値がある場合の対処方法についても解説しているので、ぜひ参考にしてみてください。
SORT関数の基本(Excel 2021以降)

SORT関数は、「範囲」指定した「列」の「順序」に従って並び替えます。
例:=SORT(A2:B5,2,-1)
【順序の種類】
- 1(省略時):昇順(小さい順)
- -1:降順(大きい順)
SORT関数の引数:(範囲, [並べ替える列], [順序], [基準方向])
📖 第4引数「基準方向」とは?
横方向のデータを並び替えたいときに使う引数です。
- TRUE:各列(横方向)のデータを比較して並び替えます。
- FALSE(省略時):各行(縦方向)のデータを比較して並び替えます。
SORT関数が使えない場合(Excel 2019以前)
同じ値(同順位)がない場合

【手順1】各値の順位を抽出する
- データの左側に以下のような数式を入力し、オートフィルでコピーします。
- 例:
=RANK.EQ(C2,$C$2:$C$5,0)
- 例:
RANK.EQ関数の引数:(数値, 範囲, [順序])
📖 順序の種類
- 0(省略時):降順(大きい順)
- 1:昇順(小さい順)
📖 RANK.EQ関数の詳しい解説は「RANK.EQ関数の使い方!」の記事をご覧ください。

【手順2】順位を基準に並び替える
- 抽出先の列(例:E列)に、「1, 2, 3…」と連番を入力しておきます。
- その隣のセルに以下のような数式を入力し、オートフィルでコピーします。
- 例:
=VLOOKUP(E2, $A$2:$C$5, 2, FALSE)
- 例:
💡 ポイント:検索範囲のみ「$」をつけて固定(例:$A$2:$C$5)します。
VLOOKUP関数の引数:(検索値, 検索範囲, 列番号, [検索の型])
📖 VLOOKUP関数の詳しい解説は「VLOOKUP関数の使い方!」の記事をご覧ください。

【手順3】隣の列も自動で取り出す
- COLUMN関数を使って列番号を指定することで、列番号が自動で切り替わります。
- 例:
=VLOOKUP($E2, $A$2:$C$5, COLUMN(B1), FALSE)
- 例:
📖 解説:COLUMN(B1)は列番号の「2」を返します。右にコピーすると COLUMN(C1) ➡ 「3」と自動で切り替わります。
同じ値(同順位)がある場合

VLOOKUP関数は「最初に見つけたデータ」を抽出するため、同順位があるとエラーが発生します。この問題を解決するために、「重複しない一意の順位」を作成します。
【手順】
- 順位を表示させたい列(例:A列)に、以下のような数式を入力します。
- 例:
=RANK.EQ(C2,$C$2:$C$5)+COUNTIF($C$2:C2,C2)-1
- 例:
COUNTIF関数の引数:(検索範囲, 条件)
【数式の解説】
- RANK.EQ関数で、通常の順位を出します。
- COUNTIF関数で、「その値が範囲内に何回目に出現したか」をカウントします。
- 範囲の開始セルのみ固定(
$C$2:C2)することで、数式を下にコピーするたびに範囲が1行ずつ広がり、「自分より上に同じ値がいくつあるか」を数えられます。
- 範囲の開始セルのみ固定(
- 「順位」+「出現回数」-「1」します。
- 1回目に登場した値:
順位 + 1回目 - 1➡ 元の順位のまま - 2回目に登場した値:
順位 + 2回目 - 1➡ 次の順位へ繰り下げ
- 1回目に登場した値: