【Excel】SORT関数が使えない時の代用方法!

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

スポンサーリンク

SORT関数の基本(Excel 2021以降)

【Excel】SORT関数が使えない時の代用方法!

SORT関数は、「範囲」指定した「列」の「順序」に従って並び替えます。

例:=SORT(A2:B5,2,-1)

【順序の種類】

  • 1(省略時):昇順(小さい順)
  • -1:降順(大きい順)

SORT関数の引数:(範囲, [並べ替える列], [順序], [基準方向])


📖 第4引数「基準方向」とは?

横方向のデータを並び替えたいときに使う引数です。

  • TRUE:各列(横方向)のデータを比較して並び替えます。
  • FALSE(省略時):各行(縦方向)のデータを比較して並び替えます。
スポンサーリンク

SORT関数が使えない場合(Excel 2019以前)

同じ値(同順位)がない場合

【Excel】SORT関数が使えない時の代用方法!

【手順1】各値の順位を抽出する

  1. データの左側に以下のような数式を入力し、オートフィルでコピーします。
    • 例:=RANK.EQ(C2,$C$2:$C$5,0)

RANK.EQ関数の引数:(数値, 範囲, [順序])


📖 順序の種類

  • 0(省略時):降順(大きい順)
  • 1:昇順(小さい順)

📖 RANK.EQ関数の詳しい解説は「RANK.EQ関数の使い方!」の記事をご覧ください。

【Excel】SORT関数が使えない時の代用方法!

【手順2】順位を基準に並び替える

  1. 抽出先の列(例:E列)に、「1, 2, 3…」と連番を入力しておきます。
  2. その隣のセルに以下のような数式を入力し、オートフィルでコピーします。
    • 例:=VLOOKUP(E2, $A$2:$C$5, 2, FALSE)

💡 ポイント:検索範囲のみ「$」をつけて固定(例:$A$2:$C$5)します。

VLOOKUP関数の引数:(検索値, 検索範囲, 列番号, [検索の型])


📖 VLOOKUP関数の詳しい解説は「VLOOKUP関数の使い方!」の記事をご覧ください。

【Excel】SORT関数が使えない時の代用方法!

【手順3】隣の列も自動で取り出す

  • COLUMN関数を使って列番号を指定することで、列番号が自動で切り替わります。
    • 例:=VLOOKUP($E2, $A$2:$C$5, COLUMN(B1), FALSE)

📖 解説:COLUMN(B1)は列番号の「2」を返します。右にコピーすると COLUMN(C1) ➡ 「3」と自動で切り替わります。

同じ値(同順位)がある場合

【Excel】SORT関数が使えない時の代用方法!

VLOOKUP関数は「最初に見つけたデータ」を抽出するため、同順位があるとエラーが発生します。この問題を解決するために、「重複しない一意の順位」を作成します。

【手順】

  1. 順位を表示させたい列(例:A列)に、以下のような数式を入力します。
    • 例:=RANK.EQ(C2,$C$2:$C$5)+COUNTIF($C$2:C2,C2)-1

COUNTIF関数の引数:(検索範囲, 条件)


【数式の解説】

  1. RANK.EQ関数で、通常の順位を出します。
  2. COUNTIF関数で、「その値が範囲内に何回目に出現したか」をカウントします。
    • 範囲の開始セルのみ固定($C$2:C2)することで、数式を下にコピーするたびに範囲が1行ずつ広がり、「自分より上に同じ値がいくつあるか」を数えられます。
  3. 「順位」+「出現回数」-「1」します。
    • 1回目に登場した値: 順位 + 1回目 - 1 ➡ 元の順位のまま
    • 2回目に登場した値: 順位 + 2回目 - 1 ➡ 次の順位へ繰り下げ
スポンサーリンク

関連記事

タイトルとURLをコピーしました