こんばんは!
一例です。
関数でやる場合ですが、↓の画像のようにB列を作業用の列としています。
作業列B2セルに
=IF(COUNTIF($A$2:A2,A2)=1,ROW(),"")
という数式を入れオートフィルで下へずぃ~~~!っとしっかりコピーしておきます。
これ以上データがない!というところまでコピーしておいても構いませんん。
そしてD2セルに
=IF(COUNT(B:B)<ROW(A1),"",INDEX(A:A,SMALL(B:B,ROW(A1))))
E2セルに
=IF(D2="","",COUNTIF(A:A,D2))
という数式を入れ、D2・E2セルを範囲指定しE2セルのフィルハンドルで下へコピーすると
画像のような感じになります。
尚、余計なお世話かもしれませんがVBAで行う場合は当然作業列は必要なく↓のような感じのコードではどうでしょうか?
画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面がでますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub test() 'この行から
Dim i, j As Long
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountIf(Range(Cells(2, 1), Cells(i, 1)), Cells(i, 1)) = 1 Then
Cells(Rows.Count, 4).End(xlUp).Offset(1) = Cells(i, 1)
End If
Next i
For j = 2 To Cells(Rows.Count, 4).End(xlUp).Row
Cells(j, 5) = WorksheetFunction.CountIf(Range("A:A"), Cells(j, 4))
Next j
End Sub 'この行まで
こんなんではどうでしょうか?m(__)m
お礼
1つ目は何故か400エラーが出てしまい検証できませんでしたが、後ほどPC変えてやってみます。 ピボットテーブルで簡単にできたのですね。。。ありがとうございました。