
EXCELで同率順位の発生しないランキング表を作成したいと思っています。
各ブロック毎にその人が進捗率何%かを計算して、E列「進捗率」が同じ場合にはF列「完了した作業」が多い方を上位とする関数を組みたく思いますが、同率順位を出す関数までは作れたのですが、同率順位の発生しない数式を作るのに苦戦しております。
D列「順位」に入っている数式は
COUNTIFS($E$3:$E$12, ">" & $E3, $B$3:$B$12, $B3) + 1
になります。
EXCELに詳しい方のお知恵をお借りしたく質問いたしました。
ご教示いただけますと幸いです。
よろしくお願いいたします。

A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
一応、力任せにやってみましたが。
=COUNTIFS($E$4:$E$13, ">" & $E4, $B$4:$B$13, $B4)+1+COUNTIFS($E$4:$E$13, $E4, $B$4:$B$13, $B4,$F$4:$F$13,">" & $F4)+COUNTIFS($E$4:$E4, $E4, $B$4:$B4, $B4,$F$4:$F4,"=" & $F4)-1
範囲を修正するのが大変そう。
手が滑りそうな。
No.3さんの
③完了した作業数が同じ場合は、行の並び順
を採用しています。
もし同順のままの方がよろしければ
3つ目の COUNTIFS 以下不要。
No.3
- 回答日時:
作業列を作って良いなら、以下の方法でできます。
作業列を作りたくないなら、この書き込みは無視してください。
I列に作業列を作るとします。
画像では4行からデータが開始ですが、提示された計算式では、3行から開始しているように見えるので、データは3行から開始の前提で書きます。
順位は以下の順序で決めます。
①進捗率の大きい順
②進捗率が同じ場合は、完了した作業数の多い順
③完了した作業数が同じ場合は、行の並び順
あなたの希望では、③の完了した作業数が同じ場合は、目標作業数が多い順にしたいとのことですが、そもそも進捗率は、完了した作業数÷目標作業数 なので、①②が同じとき、目標作業数も必ず同じになります。
(進捗率を手入力しているなら別ですが)
よって、完了した作業数が同じ場合は、行の並び順としました。
I3に
=E3*10000000+F3*100+99-ROW(A1)
と入力し、E12までオートフィルでコピーしてください。
D3に
=COUNTIFS($I$3:$I$12, ">" & $I3, $B$3:$B$12, $B3) + 1
と入力し、D12までオートフィルでコピーしてください。
前提条件として
①完了した作業件数は999件以内であること
②行数は99行までであること
となっています。
この前提条件が変わる場合は、I3の式を変える必要があります。
No.2
- 回答日時:
No1です。
>Aブロック1~5位まで、Bブロックも1~5位までといった感じです。
ブロックごとに計算すれば済む話ではないでしょうか?
No1の式はややわかりにくいので、もっと簡単な式の例を記しておきます。
添付図では、J列を作業列としてJ4セルに
=RANK(E4:E13,E4:E13)*100+RANK(F4:F13,F4:F13)
の式を入力してあります。
この結果、「E列の重複を許す順位」を100倍したものに、下二桁は「F列の重複を許す順位」を加算した数値が表示されます。
(E列の方が評価の優先順位が高いので、高位になるようにしてあります)
(対象人数が99人を超える場合は、桁数の調整が必要です)
このJ列の結果を用いて、再度順位付けすれば良いので、D4セルに
=RANK(J4#,J4#,1)
を入力してあります。
こちらの方法であれば意味を理解しやすいでしょうから、応用もできる事と思います。
※ 一発でブロック分けをして求めることも不可能ではないと思いますけれど、No1より数倍複雑な式になることが予想され、さらに理解できなくなるだけだと思いますので止めておきます。

No.1
- 回答日時:
こんにちは
>同率順位の発生しない数式を作るのに苦戦しております。
数式の前に、評価方法を考える必要があります。
ご提示の、
>E列「進捗率」が同じ場合にはF列「完了した作業」が多い方を上位とする
というルールだけでは、同率が発生する可能性があります。
極端な例で言えば、データの値が全く同じ場合でも順位を付けられるルールにしておかないと『同率順位が発生しないルール』にはなりません。
(例えば、最後は記載順で決めるとか・・)
>EXCELに詳しい方のお知恵をお借りしたく
ここまでのルールに関しては、Excelは関係ありません。
決めたルールをどのように数式化するかで初めてExcelの問題になります。
簡単な方法は作業列を使う方法ですね。
決めたルールを一つの指標に換算して作業列に求め、その値に基づいて順位付けをすれば良いです。
Excelの場合、数値の有効桁数が15桁ありますので、例えば上位5桁を第一優先順位の指標、次の5桁を第二の指標・・などのようにして数値化すれば、一つの値で評価できるようになります。
「御託はいらないから、結果をよこせ!」と言うのなら・・
文章にご提示の内容と、図で示された内容が一致していないように思われますけれど・・・
Office365等であれば、D4セルに
=MATCH(INT(F4:F13*1E8/G4:G13)*1E3+F4:F13,SORT(INT(F4:F13*1E8/G4:G13)*1E3+F4:F13,1,-1),-1)
を入力すれば、順位が下方にスピルされます。
(下部のセルを空欄にしておかないと、スピルできません)
ただし、ご提示の図とは異なり、結果はD4セルから順に
7, 6, 5, 1, 2, 4, 3, 9, 10, 8
となります。
図で「5位にしたい」とあるのは7位に、「2位にしたい」は3位になります。
(多分、文章とは異なる評価基準を採用しているのだと想像しますけれど、当方にはその内容はわかりかねます)
※ 上式はご提示の文章に基づく評価方法なので、上に述べたように同率順位が発生する可能性があります。
※ 進捗率は有効8桁(=実質7桁)で評価、作業数は999以下であると仮定しています。
こんにちは
ご回答ありがとうございます。
おっしゃる通り、データ値が全く同じ場合でも順位を付けられるようにしないといけなかったですね。
「進捗率(%)も完了した作業数も同じ場合は、G列の目標作業数が多い方を上位とする」としたいです。
※これでもまたデータ値が同じになることがあると思いますが…
素敵な数式もいただきましてありがとうございます。
いただきました数式を入力し、同率の発生しないランキング表が完成しました!
こちらを各ブロック毎に順位付けできればと思っております。
Aブロック1~5位まで、Bブロックも1~5位までといった感じです。
たくさん教えてくださったのにさらにご質問を重ねてしまい申し訳ございません。
もしよろしければ追加ご教示いただければと思います。
よろしくお願いいたします。
※教えてgooを使い慣れておらず、補足にも入れてしまいました、申し訳ございません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの順位別一覧表の自動作成について。 例えばドジャースの打順一覧(打率表示もあり) 右端に関数 1 2024/04/29 11:53
- Excel(エクセル) RANK.EQとCOUNTIFSの組み合わせで同ポイントの場合、違う条件を加えて順位を付けたい。 1 2022/08/30 19:49
- その他(Microsoft Office) ランクイコール関数について教えてください。 例えば A、B組があったとして、1、2、3班に分かれてい 2 2023/07/05 21:33
- JavaScript 二次元配列を使って順位をだすときに、同点の場合の順位をだす方法を教えて下さい。 4 2024/04/04 05:43
- ホテル・旅館 Tripadvisor ホテルの口コミ・ランキングは 信頼できますか? 3 2023/07/09 12:44
- 数学 確率を教えてください。 7 2023/03/11 11:55
- 統計学 統計学の問題です。教えてください(_ _) 数万人の有権者がいる選挙区で, 無作為に400人の標本を 2 2023/02/03 15:27
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- 世界情勢 「失敗国家ランキング」で、G7先進国の中でも日本の順位が下の方である理由である理由は何ですか? 4 2022/11/20 12:56
- 世界情勢 「失敗国家ランキング」で、G7先進国の中でも日本の順位が下の方である理由である理由は何ですか? 3 2023/05/02 13:57
このQ&Aを見た人はこんなQ&Aも見ています
-
ExcelでASCを使って全角を半角にするとカタカナも半角になってしまいます。
Excel(エクセル)
-
毎週追加して行くセルの数値を自動的に返したい
Excel(エクセル)
-
OFFSET関数を使用したいのですが、 一行分しか参照されません。 =OFFSET(対象セル,0,0
Excel(エクセル)
-
-
4
エクセルの質問です。 F列からL列で、条件付き書式で一つでも色がついたセルをAB列で*で表示したいの
Excel(エクセル)
-
5
考えた式の戻り値が期待通りにならない
Excel(エクセル)
-
6
エクセルにて時間帯にて自動で表示を変える
Excel(エクセル)
-
7
【Excel】 1つのセルの日にちを4分割にしたい
Excel(エクセル)
-
8
エクセル 入力があった場合のみ隣の関数を表示
Excel(エクセル)
-
9
大容量があつかえるソフトを探しています
Excel(エクセル)
-
10
エクセルの計算式について(COUNTIFの応用)
Excel(エクセル)
-
11
8:40までの出勤は全て8:30にする関数を教えて下さい!!
Excel(エクセル)
-
12
Excelの計算で差分を求める場合について
Excel(エクセル)
-
13
エクセル初心者です 用語とか良く分からないので簡単に説明していただけると幸いです 表を作っているので
Excel(エクセル)
-
14
納期順に勝手に並べ替えられるようにしたいのですが…
Excel(エクセル)
-
15
Excelについて教えてください。 整理番号順に並び替えをしたいのですが、 -1、-2などが混ざって
Excel(エクセル)
-
16
Excel関数について教えてください。 1から12までの数字があります。 セルが5つ横並びにあり、そ
Excel(エクセル)
-
17
SUBTOTALは、参照された数字で必要な計算をしてくれますが、文字列を表示してくれる関数って何かあ
Excel(エクセル)
-
18
ゼロを表示
Excel(エクセル)
-
19
シートの情報を別のシートへまとめる作業をしています。 ='sheet1'A3 といった具合に、該当の
Excel(エクセル)
-
20
エクセルの文字が途中から消える
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのVBAで集計をしたい
-
【関数】同じ関数なのに、エラ...
-
【画像あり】オートフィルター...
-
【マクロ】元データと同じお客...
-
【マクロ】数式を入力したい。...
-
【マクロ】【配列】3つのシー...
-
Office2021のエクセルで米国株...
-
vba テキストボックスとリフト...
-
【マクロ】【相談】Excelブック...
-
【マクロ】実行時エラー '424':...
-
【マクロ】列を折りたたみ非表...
-
他のシートの検索
-
ページが変なふうに切れる
-
【マクロ】オートフィルターの...
-
【条件付き書式】シートの中で...
-
特定のセルだけ結果がおかしい...
-
【マクロ】左のブックと右のブ...
-
エクセル ドロップダウンリスト...
-
Excelに貼ったXのURLのリンク...
-
【マクロ】アクティブセルの時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報
こんにちは
ご回答ありがとうございます。
おっしゃる通り、データ値が全く同じ場合でも順位を付けられるようにしないといけなかったですね。
「進捗率(%)も完了した作業数も同じ場合は、G列の目標作業数が多い方を上位とする」としたいです。
※これでもまたデータ値が同じになることがあると思いますが…
素敵な数式もいただきましてありがとうございます。
いただきました数式を入力し、同率の発生しないランキング表が完成しました!
こちらを各ブロック毎に順位付けできればと思っております。
Aブロック1~5位まで、Bブロックも1~5位までといった感じです。
たくさん教えてくださったのにさらにご質問を重ねてしまい申し訳ございません。
もしよろしければ追加ご教示いただければと思います。
よろしくお願いいたします。