我在Excel中有这样的数据:
Person1 A A B A C 3
Person2 0
Person3 A B C D E F 6
Person4 A A A 1
我试图找到一个公式来复制每行最后一个单元格中的数字,即与该人相关联的唯一元素的数量,但不包括空格。因此,例如,即使有三个A,Person1也有3个,因为有A,B和C。列数是固定的/每个人都相同。值A,B,C等是字符串(与数字相反)。
可以使用公式吗?
答案 0 :(得分:6)
这应该对您有用:
=SUMPRODUCT((B1:G1<>"")/COUNTIF(B1:G1,B1:G1&""))
答案 1 :(得分:4)
这是我发现的:
=SUMPRODUCT(1/COUNTIF(B1:F1,B1:F1&""))
它非常有趣:
它对countifs的结果求和,并将每个结果除以1。因此,如果有上面的示例,由于其求和,它返回4。
1/1 + 1/3 + 1/3 + 1/1 + 1/3 + 1/3
答案 2 :(得分:3)
要在工作表中使用的UDF
Public Function GetUniqueCount(ByVal rng As Range) As Long
Dim dict As Object, currCell As Range
Set dict = CreateObject("Scripting.Dictionary")
For Each currCell In rng
If Not IsEmpty(currCell) Then dict(currCell.Value) = 1
Next currCell
GetUniqueCount = dict.Count
End Function
在工作表中使用: