繁体   English   中英

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

[英]Count unique non-blank entries in a range

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

可以使用公式来完成吗?

这应该为您工作:

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

这是我发现的:

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

它的工作方式非常有趣:

产品

它对countifs的结果求和,并将每个结果除以1。因此,如果有上述示例,则返回4,因为它求和:

1/1 + 1/3 + 1/3 + 1/1 + 1/3 + 1/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

在工作表中使用:

片

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM