我试图根据给定名称计算列表中唯一值的数量。
示例:
在这个例子中,Abi有2个唯一的数字,Barry有1个,Chrissy有2个,Dave有1个。
我正在努力寻找一个excel公式,我可以在列中查看并计算每个名称的唯一值的数量:
我发现这个公式给出了过多的唯一数字,如果它们的数字实际是数字(你可能会注意到示例中的小绿色三角形。由于数字的生成方式,数字被存储作为文字):
=SUM(IF(FREQUENCY(A1:A8;A1:A8)>0;1))
我尝试过这个公式,但只想出了一个#VALUE !,无论这些数字是否是文字:
=SUM(IF(FREQUENCY(IF(LEN(E6:E14)>0;MATCH(E6:E14;E6:E14;0);""); IF(LEN(E6:E14)>0;MATCH(E6:E14;E6:E14;0);""))>0;1))
我已经玩过IF语句,SUMIF,COUNTIFS,但没有点击那个神奇的组合。
你能帮助我吗?
答案 0 :(得分:0)
试试这个短宏:
Sub UniqueTable()
Dim i As Long, N As Long, c As Collection, M As Long
Dim j As Long, vd As String, va As String
Columns("A:A").Copy Range("D1")
ActiveSheet.Range("D:D").RemoveDuplicates Columns:=1, Header:=xlYes
Range("E1").Value = "# of unique values"
N = Cells(Rows.Count, "D").End(xlUp).Row
M = Cells(Rows.Count, "B").End(xlUp).Row
For i = 2 To N
Set c = Nothing
Set c = New Collection
vd = Cells(i, "D").Value
For j = 2 To M
va = Cells(j, "A").Value
If va = vd Then
On Error Resume Next
c.Add Cells(j, "B").Value, CStr(Cells(j, "B").Value)
On Error GoTo 0
End If
Next j
Cells(i, "E").Value = c.Count
Next i
End Sub