- ベストアンサー
エクセルの関数について
エクセルの関数について教えて下さい。 氏名 1回目 順位 2回目 順位 Aさん 50点 1位 25点 2位 Bさん 45点 2位 30点 1位 Cさん 40点 3位 35点 4位 Eさん 35点 4位 40点 3位 Fさん 30点 5位 45点 6位 Gさん 25点 6位 50点 5位 最初の1回目の成績により、右にランク関数で順位が出ます。 次に上位2人・中位2人・下位2人で三つのグループを作り、 2回目の結果で上位→中位→下位グループの順番で総合順位を 出す方法を教えて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
QNo.3457166で回答した者です。 内心危惧していたとおり4人限定ではなかったのですね。 中位グループが3人以上になったときの事も考慮すると ワーク列をF列としてよいなら、また第一回の順位をC列とするなら F列に =D2+(C2<=2)*10000+(C2<MAX(C:C)-1)*1000 で如何でしょう。
その他の回答 (2)
A B C D E F G 1 氏名 1回目 順位 2回目 順位 TEMP 2 Aさん 50 1 25 2 2.75 3 Bさん 45 2 30 1 2.7 4 Cさん 40 3 35 4 4.65 5 Eさん 35 4 40 3 4.6 6 Fさん 30 5 45 6 6.55 7 Gさん 25 6 50 5 6.5 G2: =CEILING(C2,2)+(100-D2)/100 E2: =RANK(G2,G$2:G$7,1)
お礼
回答ありがとうございます。
- guchi_yama
- ベストアンサー率47% (57/119)
A B C D E 1 氏名 1回目 順位 2回目 順位 2 Aさん 50点 1位 25点 2位 3 Bさん 45点 2位 30点 1位 4 Cさん 40点 3位 35点 4位 5 Eさん 35点 4位 40点 3位 6 Fさん 30点 5位 45点 6位 7 Gさん 25点 6位 50点 5位 上記表において、E2に =IF(MOD(C2,2)=0,IF(D2>INDEX(C$2:D$7,MATCH(C2-1,C$2:C$7,0),2),C2-1,IF(D2<INDEX(C$2:D$7,MATCH(C2-1,C$2:C$7,0),2),C2,"")),IF(MOD(C2,2)=1,IF(D2>INDEX(C$2:D$7,MATCH(C2+1,C$2:C$7,0),2),C2,IF(D2<INDEX(C$2:D$7,MATCH(C2+1,C$2:C$7,0),2),C2+1,"")))) をコピペして、下へオートフィルして下さい。 ※注 "点"や"位"は書式設定にて設定して下さい。
お礼
このような計算式もできるのですね。回答ありがとうございます。
お礼
前回端折って質問したため、再度質問しました。お陰様で解決できました。ありがとうございました。