[[20220204091543]] 『順位付けで重複した順位を表示したい』(マロ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『順位付けで重複した順位を表示したい』(マロ)

名前1 名前2 品物 合計 2021年12月 2022年1月
A A QQQ 2 1 1
A A TTT 5 2 3

        A       計      7       3           4	
B       B       QQQ     6       4           2	
B       B       TTT     4       1           3	
        B       計      10      5           5	
C       C       QQQ     8       6           2	
C       C       TTT     4                   4	
        C       計      12      6           6	
D       D       QQQ     7       2           5	
D       D       TTT     6       6            	
        D       計      13      8           5	
                        1位     D           C   <--{=INDEX($B$2:$B$13,MATCH(MAXIFS(F2:F13,$C$2:$C$13,"計"),F2:F13,0))}
  1位の中で多い数→             6           4   <--{=INDEX(F2:F13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F14),F2:F13,0))}
  1位の中で多い品物→           TTT         TTT <--{=INDEX($C$2:$C$13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F14)&F14,F2:F13&$A$2:$A$13,0))}
                        2位     C           B   <--{=INDEX($B$2:$B$13,MATCH(LARGE(IF($C$2:$C$13="計",F2:F13),2)&"計",F2:F13&$C$2:$C$13,0))}
                                6           3   <--{=INDEX(F2:F13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F17),F2:F13,0))}
                                QQQ         TTT <--{=INDEX($C$2:$C$13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F17)&F17,F2:F13&$A$2:$A$13,0))}
  2位と同じ計だと2位→  3位     B           B   <--{=INDEX($B$2:$B$13,MATCH(LARGE(IF($C$2:$C$13="計",F2:F13),3)&"計",F2:F13&$C$2:$C$13,0))}
  が出てしまう                  4           3   <--{=INDEX(F2:F13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F20),F2:F13,0))}
  2022年1月                     QQQ         TTT <--{=INDEX($C$2:$C$13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F20)&F20,F2:F13&$A$2:$A$13,0))}
                        4位     A           A   <--{=INDEX($B$2:$B$13,MATCH(LARGE(IF($C$2:$C$13="計",F2:F13),4)&"計",F2:F13&$C$2:$C$13,0))}
                                2           3   <--{=INDEX(F2:F13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F23),F2:F13,0))}
                                TTT         TTT <--{=INDEX($C$2:$C$13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F23)&F23,F2:F13&$A$2:$A$13,0))}
同率が出てしまうと次の順位も上の順位の人が出てしまうのを、上の人優先で順位を付けたい。
1〜4位まで同率であれば A B C D
Cが1位 BとDが同率で2位と3位 Aが4位であれば C B D A
としたいです。よろしくお願いします。
3行目まで上手く表示出来ていません、申し訳ございません。
5、6行目と同じ並びになります。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 EXCEL2016とあるがMAXIFS関数が使えるということは365版の2016(買い切りでないもの)なのだろうか?
(ねむねむ) 2022/02/04(金) 09:43

2016でMAXIFS関数使えない事を知りませんでしたので、中身は365になっているかもしれません。
元々2016の永久ライセンスでバージョン情報を見ると2016になってるんですが、起動時はMicrosoft365になってますね。
(マロ) 2022/02/04(金) 10:21

質問が過去ログに流れてしまったので、質問内容を整理してアゲます。

質問内容
毎月一番品物の合計数が多い順で順位を付けて、その中で一番多い品物はなにかというものを下記関数で組みましたが、
毎月の順位で同率が出てしまうと次の順位も上の順位の人が出てしまうのを、上の人優先で順位を付けたいです。
例であれば「C B B A」を「C B D A」としたいです。
どんな関数を使えばいいのかわからない状態です。
順位が正常に名前を吐き出せば、その中で一案多い品物については下記関数で正常に動きますので、順位だけなんとかしたいです。

1〜4位までが同率であれば「A B C D」
Dが1位 AとCが同率で2位 Bが4位であれば「D A C B」
としたいです。

順位は4位までなのですが、最終的には25人ぐらいになります。

記載してある関数ももう少し解りやすくしたいですが、自分の力量では整理出来ませんでした。

あとExcel2016としていますが、バージョン情報を見ると2016なのですが、上記ご回答でMAXIFSがMicrosoft365以降の機能みたいなのでMicrosoft365になります。

以上ですがよろしくお願いします。
================================================================

    A列     B列     C列     D列     E列         F列
1   名前1   名前2   品物    合計    2021年12月  2022年1月	
2   Aさん   Aさん   QQQ     2       1           1	
3   Aさん   Aさん   TTT     5       2           3	
4           Aさん   計      7       3           4	
5   Bさん   Bさん   QQQ     6       4           2	
6   Bさん   Bさん   TTT     4       1           3	
7           Bさん   計      10      5           5	
8   Cさん   Cさん   QQQ     8       6           2	
9   Cさん   Cさん   TTT     4                   4	
10          Cさん   計      12      6           6	
11  Dさん   Dさん   QQQ     7       2           5	
12  Dさん   Dさん   TTT     6       6            	
13          Dさん   計      13      8           5 	  ※F列にある関数
14                          1位     Dさん       Cさん    <--{=INDEX($B$2:$B$13,MATCH(MAXIFS(F2:F13,$C$2:$C$13,"計"),F2:F13,0))}
15                                  6           4        <--{=INDEX(F2:F13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F14),F2:F13,0))}
16                                  TTT         TTT      <--{=INDEX($C$2:$C$13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F14)&F14,F2:F13&$A$2:$A$13,0))}
17                          2位     Cさん       Bさん    <--{=INDEX($B$2:$B$13,MATCH(LARGE(IF($C$2:$C$13="計",F2:F13),2)&"計",F2:F13&$C$2:$C$13,0))}
18                                  6           3        <--{=INDEX(F2:F13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F17),F2:F13,0))}
19                                  QQQ         TTT      <--{=INDEX($C$2:$C$13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F17)&F17,F2:F13&$A$2:$A$13,0))}
20                          3位     Bさん       Bさん    <--{=INDEX($B$2:$B$13,MATCH(LARGE(IF($C$2:$C$13="計",F2:F13),3)&"計",F2:F13&$C$2:$C$13,0))}
21                                  4           3        <--{=INDEX(F2:F13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F20),F2:F13,0))}
22                                  QQQ         TTT      <--{=INDEX($C$2:$C$13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F20)&F20,F2:F13&$A$2:$A$13,0))}
23                          4位     Aさん       Aさん    <--{=INDEX($B$2:$B$13,MATCH(LARGE(IF($C$2:$C$13="計",F2:F13),4)&"計",F2:F13&$C$2:$C$13,0))}
24                                  2           3        <--{=INDEX(F2:F13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F23),F2:F13,0))}
25                                  TTT         TTT      <--{=INDEX($C$2:$C$13,MATCH(MAXIFS(F2:F13,$A$2:$A$13,F23)&F23,F2:F13&$A$2:$A$13,0))}

(マロ) 2022/02/15(火) 08:41


 MAXIFSはXL2019からと、或るサイトには書かれているのですが、
 今回は365であるものとします。

 (1) D14セル =LET(sq,SEQUENCE(COUNTIF(C$2:C$13,"計")*3,1,3)/3,IF(MOD(sq,1)=0,sq,""))
     これは下にスピルしますので、下へコピーは不要。(逆に下には何も入力しないでください)

 (2) E14セル =IF(D14="","",INDEX($B$1:$B$13,1000-MOD(AGGREGATE(14,6,(E$2:E$13*1000+1000-ROW(ZZ$2:ZZ$13))/($C$2:$C$13="計"),$D14),1000)))
 (3) E15セル =IF(E14="","",MAXIFS(E$2:E$13,$C$2:$C$13,"<>計",$B$2:$B$13,E14))
 (4) E16セル =IF(E14="","",XLOOKUP(E14&E15,$B$2:$B$13&E$2:E$13,$C$2:$C$13,""))
      E14:E16を丸ごと下方へフィルコピー
(半平太) 2022/02/15(火) 13:55

半平太様無事動作しました。
実はかなり途方に暮れていましたので大変助かりました。
これから関数見て復習させて頂きます。
ありがとうございました。
(マロ) 2022/02/15(火) 16:30

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.