私は Excel 初心者です。親列 (画像の最初の列 (A)) を基準として、3 つの列のそれぞれで一意の値をカウントする (一度に 1 つだけ考慮) 方法について助けが必要です。助けていただけませんか? よろしくお願いします!
編集: ピボット テーブルを作成すると、個々の列の数は表示されず、最終列の数が表示されます。
ソースデータ:
変換後の結果データ:
ソース
A B C D
p d g k
p e g k
q d h k
q f h o
r d h o
r e i m
r f h m
s d i n
s d i o
s f i o
結果
A B C D
p 2 1 1
q 2 1 2
r 3 2 2
s 2 1 2
答え1
列のリストを作成しますあユニークにして列に入れるえ次に、一連のループを実行して、他の列の一意の数をカウントします。
Sub Macro1()
Dim N As Long, i As Long
Dim c As Collection, v As Variant
Dim M As Long, j As Long, rc As Long
Dim K As Long
Columns("A:A").Copy Columns("E:E")
Range("E:E").RemoveDuplicates Columns:=1, Header:=xlNo
rc = Rows.Count
M = Cells(rc, "A").End(xlUp).Row
N = Cells(rc, "E").End(xlUp).Row
For i = 1 To N
v = Cells(i, "E").Text
For K = 2 To 4
Set c = Nothing
Set c = New Collection
For j = 1 To M
If v = Cells(j, "A").Text Then
On Error Resume Next
c.Add Cells(j, K).Text, CStr(Cells(j, K).Text)
On Error GoTo 0
End If
Next j
Cells(i, K + 4).Value = c.Count
Next K
Next i
End Sub