如何计算Excel中不包含某些字符的唯一单元格的数量

我试图计算C列中没有“#”或“ – ”的唯一单元格的数量。

我有一列包含名字的单元格。 其中一些名称是重复的,一些内部有“ – ”和/或“#”等字符 – 我试图排除这些细胞的数量。

我有两个公式,每个都是我需要的一半,但我需要结合2个公式来得到正确的答案:

此公式计算唯一单元格的数量(并处理空白):= SUM(IF(COUNTIF(C4:C3689,​​C4:C3689)= 0,“”,1 / COUNTIF(C4:C3689,​​C4:C3689)) )

该公式计算没有“#”或“ – ”的单元格的数量:= SUMPRODUCT(N(LEN(SUBSTITUTE(SUBSTITUTE(C4:C3689,​​“ – ”,“”),“#”,“” ))= LEN(C4:C3689)))

你知道如何结合2个公式吗? 如果你知道如何以不同的方式(自定义函数或VBA)将这两个公式结合起来,那也是非常棒的。

谢谢。

此公式将计算指定范围内不同条目的数量,不包括任何包含#-

=SUMPRODUCT((ISERR(SEARCH("#",C4:C3689))*ISERR(SEARCH("-",C4:C3689))*(C4:C3689<>""))/COUNTIF(C4:C3689,C4:C3689&""))

使用这样的function:

=GetUniqueCount("C4:C3689")

添加function码:

 Function GetUniqueCount(rng As Range) As Variant 'Dim rng as Range 'Set rng = Range("C4:C3869") 'Modify as needed Dim r as Range Dim uniqueCount as Long Dim dict as Object Set dict = CreateObject("Scripting.Dictionary") For each r in rng.Cells If Not dict.Exists(r.Value) Then If Instr(1, r.Value, "#") = 0 Then If Instr(1, r.Value, "-") = 0 Then dict(r) = "" uniqueCount = uniqueCount + 1 End If End If End If Next GetUniqueCount = uniqueCount Set dict = Nothing End Function