【问题标题】:How to Count Number of Unique Cells in Excel That Don't Contain Certain Characters如何计算 Excel 中不包含某些字符的唯一单元格的数量
【发布时间】:2014-01-21 14:27:42
【问题描述】:

我正在尝试计算 C 列中没有“#”或“-”的唯一单元格的数量。

我有一列包含名称的单元格。其中一些名称是重复的,有些名称中包含诸如“-”和/或“#”之类的字符——我试图将这些单元格排除在计数之外。

我有 2 个公式,每个公式只做我需要的一半,但我需要将这 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)))

你知道如何组合这两个公式吗?如果您知道如何以不同的方式(自定义函数或 VBA)组合这两个公式,那就太好了。

谢谢。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      使用这样的函数:

      =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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-30
        • 1970-01-01
        • 2014-12-05
        • 1970-01-01
        相关资源
        最近更新 更多