- ベストアンサー
Excel 団体によるランキングの付け方
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
画像の表の場合です。 Sub Test() Dim i As Long, j As Long, k As Long Dim LastRow As Long Range("G:H").ClearContents Range("G1").Value = "順位" j = 3 For i = 2 To 10 Step 4 Cells(i, "G").Resize(4, 1).Value = Cells(2, j).Resize(4, 1).Value j = j + 1 Next Range("$G$2:$G$13").RemoveDuplicates Columns:=1, Header:=xlNo LastRow = Cells(Rows.Count, "G").End(xlUp).Row For i = 2 To LastRow For j = 3 To 5 For k = 1 To 4 If Cells(k + 1, j).Value = Cells(i, "G").Value Then Cells(i, "H").Value = Cells(i, "H").Value + (5 - k) End If Next k Next j Next i Range(Cells(1, "G"), Cells(LastRow, "H")).Sort _ Key1:=Range("H1"), Order1:=xlDescending, _ Header:=xlYes End Sub
その他の回答 (1)
- kon555
- ベストアンサー率51% (1843/3560)
まず所属団体のリストを作成します。 それぞれの団体が、各の順位の列に何個あるかをカウントif関数で数え、その回数×順位ポイントで、先ほどのリストの横に点数をつけます。 最後にSORT関数で並べ変えたら完成です。
お礼
ありがとうございます。 参考になります。
お礼
関数でと思ったのですが、VBAでも出来るんですね。 驚きです。 すみませんが、各クラスの順位、総合順位について別の質問をしますので、またお世話になれたらと思います。 宜しくお願いします。