我正在尝试计算C列中没有"#"或" - "内部的唯一单元格的数量。
我有一列包含名称的单元格。这些名称中的一些重复,有些名称具有" - "和/或"#"之类的字符 - 我试图将这些单元格排除在计数之外。
我有2个公式,每个公式都可以完成我需要的一半,但是我需要结合两个公式以获得正确的答案:
此公式计算唯一单元格的数量(并照顾空白):= sum(if(if(C4:C3689,C4:C3689)= 0,",1/Countif(C4:C3689,C4:C3689)))
此公式计算没有"#"或" - "的单元格数:= sumproduct(n(n(len(替代)(替代(c4:c3689," - " - " - ",","),"#"#","))= len(c4:c3689)))
您知道如何结合两个公式吗?如果您知道如何以不同的方式组合两个公式(自定义功能或VBA)也很棒。
谢谢。
此公式将计算指定范围内的不同条目的数量,不包括包含#
或-
=SUMPRODUCT((ISERR(SEARCH("#",C4:C3689))*ISERR(SEARCH("-",C4:C3689))*(C4:C3689<>""))/COUNTIF(C4:C3689,C4:C3689&""))
使用这样的函数:
=GetUniqueCount("C4:C3689")
添加功能代码:
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