|
▼さぶちゃん さん:
>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
1 名前 項目1 項目2 項目3 項目4 項目5 合計
2 A 8.0 8.0 7.9 7.8 7.1 23.7
3 B 7.9 7.8 7.6 7.3 7.1 22.7
4 C 7.9 7.6 7.6 7.3 7.2 22.5
5 D 7.8 7.6 7.5 7.4 7.1 22.5
6 E 7.9 7.7 7.4 7.3 7.0 22.4
7 F 7.8 7.6 7.4 7.3 7.2 22.3
8 G 7.9 7.5 7.4 7.2 7.0 22.1
9 H 7.8 7.5 7.4 7.2 7.0 22.1
10 I 7.9 7.5 7.3 7.3 7.1 22.1
上記のようなデータがあるとして、並べ替えで
優先順位が、G列の合計、次がE列の項目4、そしてその次がC列の項目2、ここまで
一回の操作でできます。
その後、もう一度並べ替えで、最優先がG列の合計、次がB列の項目1、そしてその次が項目5と二回ソートすれば良いのでは?
コードは、マクロの記録で・・・
Keyが3つ以上のソートは、ichionseさんがどこかに書いていたと思うのですが、
見つかりませんでした。
見つけた人教えてください。
|
|