• ベストアンサー

Excel 団体によるランキングの付け方

順位により下記のポイントを付けます。 1位4点 2位3点 3位2点 4位1点 各順位者の所属団体にポイントを付けます。 所属は都道府県です。 Gセルにポイントが多い順に団体名が並ぶようにしたいです。 上記の方法が思いつかないのです。 アドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.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

nkmyr
質問者

お礼

関数でと思ったのですが、VBAでも出来るんですね。 驚きです。 すみませんが、各クラスの順位、総合順位について別の質問をしますので、またお世話になれたらと思います。 宜しくお願いします。

その他の回答 (1)

  • kon555
  • ベストアンサー率51% (1843/3560)
回答No.1

 まず所属団体のリストを作成します。  それぞれの団体が、各の順位の列に何個あるかをカウントif関数で数え、その回数×順位ポイントで、先ほどのリストの横に点数をつけます。  最後にSORT関数で並べ変えたら完成です。

nkmyr
質問者

お礼

ありがとうございます。 参考になります。

関連するQ&A