名前、回数が並んでいる列を名前ごとに、回数の降順で
ならべて、名前ごとに一番のところに ○をつけたいのです。
マクロでどう書くといいのでしょうか?
a 3
b 2
a 5
c 1
b 4
のようになっているのを
a 5 ○
a 3
b 4 ○
b 2
c 1 ○
データが A:B列にあることを想定していますが、このような感じでしょうか。
Sub sortAndMarkTop() Columns("C").Clear Columns("A:B").Sort _ key1:=Range("A1"), order1:=xlAscending, _ key2:=Range("B1"), order2:=xlDescending Dim lastRow As Long lastRow = Range("A" & Rows.Count).End(xlUp).Row Range("C1").Value = "○" For r = 2 To lastRow If Cells(r, "A").Value <> Cells(r - 1, "A").Value Then Cells(r, "C").Value = "○" End If Next End Sub
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_sort.html
数式だけでできます。
A B C 1 a 3 2 b 2 3 a 5 ○ 4 c 1 ○ 5 b 4 ○
上記の表と仮定し
C1は =IF(B1=MAX(IF($A$1:$A$6=A1,$B$1:$B$6,0)),"○","") と入力し 最後に CTRL + SHIFT + ENTER を押下してください。 見た目は前後に{ } がつきます。 {=IF(B1=MAX(IF($A$1:$A$6=A1,$B$1:$B$6,0)),"○","")}
後はC2:C5に複写してください。
※必要なら降順に並べても良いですが、並べなくても良いです。
a 5 のみに ○がつきます。