计算范围内唯一的非空白条目

时间:2018-07-25 13:04:36

标签: excel vba excel-formula unique nonblank

我在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等是字符串(与数字相反)。

可以使用公式吗?

3 个答案:

答案 0 :(得分:6)

这应该对您有用:

=SUMPRODUCT((B1:G1<>"")/COUNTIF(B1:G1,B1:G1&""))

答案 1 :(得分:4)

这是我发现的:

=SUMPRODUCT(1/COUNTIF(B1:F1,B1:F1&""))

它非常有趣:

product

它对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

在工作表中使用:

Sheet