|
▼ハチ さん:
サンプルとしてお見せしたものが適切でないために説明不足になってしまいました。私が処理を実行したいと思っている正確なものは以下の様な数値データです。
これはある試験の点数表で、ここでは9名の各試験者の点数がA列からE列まで入力されています。F列がその合計点(高得点順)となりますが、もし同点がいた場合はG列に一度表示します。その同点に対して順位を付けるために、まず最初にF列の合計点にD列にある点数を加算します。ここではA3、A4の試験者が同点ですがD列の点数を加算するとA4の試験者の方が高得点となるのでA3、A4の行を入れ替えてA4の行が上になる様に入れ替えた形でH列に表示します。(ここでは入れ替えが出来ないためそのままH列に表示してあるだけですが。)
この様にD列の加算で順位が付いた場合はここまでの処理となりますが、同じ様に同点となっている7行目から9行目までの場合、上記と同じやり方でD列を加算すると、まず9行目が得点が高いのでH列に9行目が上となって表示します。
7行と8行はD列の値が同じため、次の手順としてB列を加算します。
これで得点差が出れば高得点者が上位となりますが、ここではB列の値も同じため、次の手順としてはA列とE列の合計点をF列の点数に足します。
ここでは7行目のA列の値が8行目より高いため最終的にJ列にこの3つの同点の順位としては9行、7行、8行という順位として表示します。
すみません、長々と書いてしまいましたが、ざっとこんな感じの処理を一気にではなく上述した様なステップを踏みながら処理していきたいと思っています。
VBAコード初心者の私には色々な参考文献を見て試行錯誤しているのですがこの様に複雑になると全くわかりません。
誠に勝手ではありますが、アドバイスの程宜しくお願いいたします。
A B C D E F G H I J
1 8.0 8.0 7.9 7.8 7.1 23.7
2 7.9 7.8 7.6 7.3 7.1 22.7
3 7.9 7.6 7.6 7.3 7.2 22.5 22.5 22.5
4 7.8 7.6 7.5 7.4 7.1 22.5 22.5 22.5
5 7.9 7.7 7.4 7.3 7.0 22.4
6 7.8 7.6 7.4 7.3 7.2 22.3
7 7.9 7.5 7.4 7.2 7.0 22.1 22.1 22.1 22.1 22.1
8 7.8 7.5 7.4 7.2 7.0 22.1 22.1 22.1 22.1 22.1
9 7.9 7.5 7.3 7.3 7.1 22.1 22.1 22.1 22.1 22.1
|
|