- 締切済み
Excel ~順位の条件
A B C D E F … 1 5 7 2 5 3 3 4 4 上記のような表に順位を付けたいです。 (1)Bの値に順位を付ける (2)Bの値が同じ場合はCの値で順位を付ける 例えばDに表示する場合のどのような関数式になるでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- sige1701
- ベストアンサー率28% (74/260)
こんな感じかな D1=SUMPRODUCT(($B$1:$B$3*100+$C$1:$C$3>B1*100+C1)*1)+1
- alna_sag
- ベストアンサー率50% (4/8)
計算式が2列になってもよければ、こんな案もあります。 D列に入れる式は =(COUNT($B$1:$B$3))*RANK(B1,$B$1:$B$3,0)+RANK(C1,$C$1:$C$3,0) E列に入れる式は =RANK(D1,$D$1:$D$3,1) 1列では分かりませんでした。 行数を増やしたい時は行の挿入をすると良いと思います。 あんまり行数が大きい場合は考えていません。
- cerberos
- ベストアンサー率50% (420/830)
順位についてはRANK関数を利用することで順位をつけることが可能ですが、 複数条件は指定できません。 ただし、対象とする数値やランクそのものに重みをつけることで自動計算 させることが可能です。 まず、別途計算用の列を用意します。 仮にE列を使いますが、 E1セルに=B1*10+C1 を入力します。 RANK関数をD列に設定します。 D1セルに =RANK(E1,$E$1:$E$3,0) 最後にE列を非表示にすればOKです。 C列に入る数値の桁数によって、重み付けでつける乗数を変更してください。 (C列が2桁なら×100,3桁なら×1000など)
- alna_sag
- ベストアンサー率50% (4/8)
関数式ではないですが並べ替えはどうですか? BC列とも大きいほうが順位が高いとすると B列を最優先されるキー、 C列を2番目に優先されるキー にして両方降順にすると 所望の順位に並びます。 その後でD列に上から1,2,…とつけては如何でしょうか?
補足
回答ありがとうございます。 実は私も一番最初に頭に浮かんだのが並べ替えでした。 ですが、並べ替えだと値を更新すると自動で順位の変更はされないので二度手間になってしまいます。