本文へスキップ
totonoe

Excel・表計算を整える

初級

RANK・LARGE・SMALLを整える

= 並べ替えなくても順位が出せる。同点なら順位が飛ぶ理由も分かる

「並べ替えずに順位を出したい」——成績表の点数を書き換えるだけで、RANK.EQ・RANK.AVGの順位が即座に分かります。同点の人がいると順位が「飛ぶ」(2位が2人いれば3位は欠番で次が4位)という、初見でつまずきやすい挙動を色分けで可視化。LARGE・SMALLで上位・下位3つの値も抜き出せます。計算はすべてこの端末の中で完結します(送信ゼロ)。

i

TLDR — 30秒で分かる

点数を書き換えるだけでRANK.EQとRANK.AVGを同時表示。同点だと順位が飛ぶ理由が一目で分かる。LARGE/SMALLでベスト3も。

主な機能

  • RANK.EQ/RANK.AVGを同時表示・同率で順位が飛ぶ箇所を色分け
  • LARGE/SMALLで上位・下位3つの値を抽出、該当セルが光る
  • INDEX+MATCHとの合わせ技(名前も取得)を静的例で紹介
  • 昇順(タイム競技)⇔降順の切替体験
  • 範囲$固定の注意+完成数式コピー
  • すべてブラウザ内・送信ゼロ

RANK

① 順位を出す

点数を書き換えると、RANK.EQ・RANK.AVG の両方の順位が即座に再計算されます。同点の行がどうなるかに注目してください。

成績表(名前・点数は編集できます) 書き換えるそばから再計算(送信ゼロ)
A B RANK
1 名前 点数 RANK.EQ RANK.AVG
2
3
4
5
6
7
同率で順位が並んだ行 同率のせいで欠番になった順位

順序(第3引数) 入力するそばから計算(送信ゼロ)

タイム競技のように「小さいほど良い」場面では昇順に切り替えます(②のセクションで詳しく)。

完成数式(B2 の行の例) 入力するそばから計算(送信ゼロ)
=RANK.EQ(B2, $B$2:$B$7)
=RANK.AVG(B2, $B$2:$B$7)

⚠ 範囲の $B$2:$B$7$ で固定必須です。固定しないと下の行へコピーしたときに範囲がずれて、順位がおかしくなります。詳しくは 絶対参照($)を整える →

TOP3

② ベスト3を取り出す

LARGE は上位から、SMALL は下位から、k番目の値をそのまま返します(順位ではなく「値」が返る点に注意)。①の表と連動して、該当セルが光ります。

🏆 LARGE — 上位3つ 入力するそばから計算(送信ゼロ)
1番目
2番目
3番目
🔻 SMALL — 下位3つ 入力するそばから計算(送信ゼロ)
1番目
2番目
3番目

LARGE・SMALL は「値」を返すだけ——「1位は誰?」のように名前も欲しいときは、INDEX と MATCH を組み合わせます。

=INDEX($A$2:$A$7, MATCH(LARGE($B$2:$B$7,1), $B$2:$B$7, 0))

「1位の点数(LARGE)が何行目か(MATCH)を探し、その行の名前(INDEX)を返す」という合わせ技。

INDEX・MATCHを整える → で単体からじっくり練習できます。

ORDER

③ 昇順の順位(小さいほど良い)

タイム競技のように「数値が小さいほど順位が上」の場面では、RANK.EQ の第3引数に 1 を指定します(省略・0 は降順)。

⏱ 走タイム(秒)— 昇順チャレンジ 入力するそばから計算(送信ゼロ)
A B RANK
2 ゆい
3 そら
4 りく
5 めい

タイムは小さいほど上位。第3引数を切り替えて、順位がどう変わるか確かめてください。

=RANK.EQ(B2, $B$2:$B$5, 1)

PITFALLS

④ ありがち失敗

RANKでつまずくポイントは、だいたいこの3つです。

範囲を $ で固定せずコピーした

=RANK.EQ(B2,B2:B7) のまま下へコピーすると、行がずれるたびに範囲も B3:B8、B4:B9…と動いてしまい、順位がめちゃくちゃになります。

直し方:範囲は必ず $B$2:$B$7 のように絶対参照で固定する(詳しくは下記リンク)。

RANKと並べ替えの使い分け

「順位順に並べ替え」てしまうと、元の行の並び(名簿順・入力順)が失われます。

RANK.EQ の価値は「元の並びを保ったまま順位だけ分かる」こと。並べ替えたいときだけ別途ソートを使う。

同率を崩したい(上級テク)

同率をなくして必ず1位から連番にしたいときは、小数点以下のわずかな値を足して同率を崩す上級テクがあります。

=RANK.EQ(B2,$B$2:$B$7)+COUNTIF($B$2:B2,B2)-1 ※ COUNTIF の範囲は「先頭固定・末尾は自分の行」の複合参照にするのがコツ(同じ点の中で先に出てきた行ほど上位になる)。

RANKの基本

並べ替えなくても、順位だけ横に出せる。それが RANK の価値。

  1. 1

    同率は同じ順位、次は「飛ぶ」

    RANK.EQ は同率を同じ順位にし、次の順位は同率の人数ぶんスキップします。2位が2人いれば3位は欠番で次は4位。「順位の合計」で人数を検算したいときに引っかかりやすいポイントです。

  2. 2

    RANK.AVG は同率の「平均順位」

    2位が2人なら (2+3)÷2 = 2.5 位を両方に割り当てます。欠番を作りたくない集計(ボウリングの大会順位など)で使われます。

  3. 3

    範囲は必ず絶対参照 $ で固定

    RANK は「全員の中の自分の位置」を出す関数なので、下へコピーしても範囲そのものは動いてほしくありません。$B$2:$B$7 のように固定するのが鉄則です。

🔒 RANK.EQ・RANK.AVG・LARGE・SMALL の計算はすべて、Excel の挙動(同率の扱い・順序引数・範囲外エラー)を再現した純JavaScriptで、あなたのブラウザの中だけで動きます。入力した数字はサーバに送られません(送信ゼロ)。

よくある質問

Q. RANK.EQとRANK.AVGは何が違いますか?

A. 同率の扱いです。RANK.EQは同じ順位を与えて次を欠番にし(2位・2位・4位)、RANK.AVGは連続順位の平均(2.5位・2.5位)を与えます。

Q. なぜ2位が2人いると3位が消えるのですか?

A. RANK.EQは「自分より良い人の数+1」で順位を計算するためです。同率2人の次の人は「上に3人いる」ので4位になり、3位は誰にも割り当てられません。

Q. 範囲を$で固定しないとどうなりますか?

A. 下へコピーすると範囲がずれ、行ごとに違う母集団で順位を計算してしまい結果が壊れます。=RANK.EQ(B2, $B$2:$B$7) のように範囲は必ず$で固定します。

Q. LARGE・SMALLとRANKの違いは?

A. RANKは「その値が何位か」を返し、LARGE/SMALLは「◯番目に大きい(小さい)値」そのものを返します。1位が誰かまで知りたいときはINDEX+MATCHと組み合わせます。

Q. タイムのように小さいほど良い場合は?

A. RANK.EQの第3引数に1を指定します(省略または0は大きいほど上位)。本ツールの昇順切替で体験できます。

Q. 入力した点数はどこかに送られますか?

A. いいえ。順位計算も抽出もすべてブラウザ内で完結します(送信ゼロ)。

入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。

RELATED TOOLS

続けて整える

KOINOBORI ECOSYSTEM

私たちが運営するサイト