スコアが変わるたびに Excel テーブルを手動で再並べ替えるのは時間の無駄です。 RANK.EQ 機能は、ポジションを瞬時に割り当てることでリーダーボードを自動化します。売上を追跡している場合でも、レースのタイムを追跡している場合でも、データを動的かつ正確に保つ方法を次に示します。
以前、 ランク Excel の唯一のランキング関数でした。しかし、2010 年にマイクロソフトは ランクEQ (旧RANKと同一)および ランク.平均 (同点の平均ランクを返す新しいオプション)。このガイドでは、RANK.EQ を使用します。これは、最新の標準であり、RANK とまったく同じように機能するためです。
RANK.EQ 関数の仕組み
構文を理解する
RANK.EQ 関数は、数値がリスト内の他の数値と比較してどこに位置するかを特定し、自動的に更新される「ライブ」順位を提供します。この関数は単純な構文に従います。
=RANK.EQ(number, ref, (order))
どこ:
- 番号 (必須) はランク付けする値です。
- 参照 (必須) は、値を比較する数値の範囲または配列です。数値以外の値 (テキストや空白など) は無視されます。
- 注文 (オプション) ランキングの方向を決定します。降順ランクの場合は 0 (または空白のまま) を使用し、昇順ランクの場合は 1 を使用します。
複数の値が同じランクを持つ場合、RANK.EQ はそれらの値にそのグループの最上位のランクを割り当てます。たとえば、2 人が最高スコアで同点の場合、両方ともランク 1 を受け取り、次にスコアが高い人にはランク 3 が与えられます。
RANK 関数は、範囲拡張と構造化参照を自動的に処理するため、Excel テーブルで最もよく機能します。ただし、もしあなたが しなければならない 通常のセル範囲を使用し、セルをロックします。 参照 $B$2:$B$10 など、ドル記号を使用します。
読み進めるには、例で使用されている Excel ワークブックの無料コピーをダウンロードしてください。リンクをクリックすると、画面の右上隅にダウンロード ボタンが表示され、ファイルを開くと、別のワークシート タブで各ユース ケースにアクセスできます。
使用例 1: 動的なリーダーボードの構築
行を並べ替えずにエントリをランク付けする
RANK.EQ は、データを元の順序に保ちながら、トップパフォーマーを特定します。
シナリオ: という名前の Excel テーブルがあります。 T_セールス。これには、詳細が署名された順序を表す ID 列が含まれています。順位が見えるように A 列にランクを入れたいとしますが、実際のレシートと一致するように表を ID でソートしておく必要があります。
これらの順位を生成するには、セルに次の式を入力します。 A2 そして押します 入力:
=RANK.EQ((@Revenue), (Revenue), 0)
式の仕組みは次のとおりです。
- (@収益) 現在の行の収益を確認します。 ID 101 の場合、52000 が表示されます。
- (収益) その値を列全体のすべての数値と比較します。
- 0 最も収益の高い人 (エレナ) にランク 1 が割り当てられるようにします。より明確な式のためにこれを省略することもできます。
なぜ単純にテーブルソートを使用しないのでしょうか?
[収益]列の上部にあるフィルター矢印を使用して、最大から最小の順に並べ替えるのは魅力的です。ただし、元の ID の順序が台無しになるだけでなく、動的な問題に対する静的な修正でもあります。新しい売上を追加したり、収益数値を更新したりしたら、すぐに並べ替えを再適用または維持する必要があります。
RANK.EQ を使用すると、「設定したらあとは忘れる」システムを作成できます。これにより、メイン テーブルを元の順序に保つことができ、追加した新しい行に数式が下方向に展開されるため、ランキングが即座に更新されます。
データを最大限に活用する
結果をさらに意味のあるものにするには、列 A のランクを SORTBY 式のエンジンとして使用し、データをランク 1 から下に自動的に表示します。
空白のセルに次のように入力します。
=SORTBY(T_Sales, T_Sales(Rank), 1)
これにより、1 から 5 までの順序を維持したテーブルの動的コピーが作成されます。ソース テーブルが ID でソートされたままであっても、この新しいリストにより、ランク 1 が常に最上位に位置することが保証されます。データが変更されるとすぐに、このリストは自動的に更新されます。
使用例 2: 最速タイムのランキング
最小の数字が勝つシナリオを処理する
ひっくり返すことで、 注文 RANK.EQ 関数の引数を使用すると、最小の数値が「勝者」として認識されるようにすることができます。
シナリオ: という名前のテーブルでラップタイムを追跡しています。 T_結果。このテーブルをスターティング グリッド (StartPos) の元の順序に維持する必要がありますが、現在最速ラップを保持しているのは誰かを知りたいと考えています。
これらを最も速いものから最も遅いものまでランク付けするには、次の数式をセルに入力します。 B2:
=RANK.EQ((@Seconds), (Seconds), 1)
今回設定するのは、 注文 1 への引数は昇順のランキングを使用し、最低時間が確実にランク 1 になるようにします。
データを最大限に活用する
列 B にランクを配置すると、別のセルで FILTER 関数と SORT 関数を一緒に使用して、きれいな表彰台の表示を抽出できます。
=SORT(FILTER(T_Results((Rank):(Seconds)), T_Results(Rank) <= 3), 1, 1)
これにより、最も高速な 3 つのドライバーのみを引き出すセカンダリ アレイが作成されます。 Rank 列にリンクされているため、メイン テーブルが StartPos 列で並べ替えられたままであっても、表彰台は自動的に更新されます。
使用例 3: セカンダリ メトリックを使用して関係を解消する
ボーナスポイントを使用して最終順位を決定します
RANK.EQ は、同点のスコアに同じランクを割り当てます。二次的なパフォーマンス (ボーナス ポイントなど) に報酬を与える独自のランキングを作成するには、数式に COUNTIFS を追加します。これは、同じスコアを共有しながら、より高いボーナスを獲得している人の数を数えます。
シナリオ: という名前のテーブルがあります T_リーグ。 3 人のプレイヤーは 88 ポイントで並んでいます。そのため、ボーナス ポイントを使用して同点を破り、すべてのランクが独自かつ公平になるようにする必要があります。
独自のメリットベースのランキングを作成するには、この数式をセルに入力します。 A2:
=RANK.EQ((@Points), (Points)) + COUNTIFS((Points), (@Points), (Bonus), ">"&(@Bonus))
この式は基本ランクを計算し、ボーナス ポイントに基づいて縛られたプレイヤーを「追い詰めます」:
- RANK.EQ((@ポイント), (ポイント)) 標準ランクを示します。 88 ポイントを持つ 3 人のプレーヤー全員について、これは 2 を返します (ダコタが 1 位であるため)。
- カウント(…) タイブレーカーです。現在の行とまったく同じポイントを持つプレイヤーのみを調べ、そのうちの何人のプレイヤーが現在の行よりも高いボーナスを持っているかを数えます。
Blake (88 ポイント、15 ボーナス) を例に挙げてみましょう。
- ランクEQ Blake がランク 2 位に並んでいることがわかります。
- カウンティ 88 ポイントを持つ全員を見て、「ブレイクの 15 ポイントよりも高いボーナスを持っているのは誰ですか?」と尋ねます。エメルソンのみが資格を持っているため、カウントは 1 です。
-
Excel は、そのカウント (1) を基本ランク (2) に追加します。その結果、ブレイクはランク 3 に認定されました。
このメソッドは標準関数を使用するため、非常に高速で、行ごとに 1 つの値を返し (Excel テーブルに最適です)、他の人にとっても理解しやすいものです。
これらのランキング手法により、すべての新しいエントリは、入力した瞬間にリーダーボードにその位置を見つけることができます。つまり、ライブの競争データを追跡している人にとっては大きな勝利となります。ただし、データの入力または削除が発生したときにそれに反応するシーケンシャル リストが必要なだけの場合は、SEQUENCE 関数と COUNTA 関数を組み合わせます。いずれにせよ、鍵となるのは自動化と時間の節約であり、これらの Excel ワークフローが提供する利点が両方あります。
- OS
-
Windows、macOS、iPhone、iPad、Android
- 無料トライアル
-
1ヶ月
Microsoft 365 には、最大 5 台のデバイスで Word、Excel、PowerPoint などの Office アプリ、1 TB の OneDrive ストレージなどへのアクセスが含まれています。