在Excel中查找一系列单元格中的精确子字符串

时间:2014-05-02 19:50:47

标签: excel counting

我正在寻找一种在单元格范围内找到精确文本字符串的方法,这样我就可以计算子字符串的出现次数。确切地说,我的意思是如果范围包含多次出现的值“apple”和“apples”,并且我想计算“apple”的出现次数,我不希望包含“apples”。我已尝试使用COUNTIF和SUM(LEN / SUBSTITUTE)公式,但它们返回“apple”和“apples”的计数,因为“apples”包含字符串“apple”。思考?

1 个答案:

答案 0 :(得分:0)

尝试这个小的用户定义函数( UDF

Public Function FruitCounter(rIn As Range, s As String) As Long
    Dim r As Range
    Dim ary() As String
    For Each r In rIn
        ary = Split(Replace(r.Value, " ", ""), ",")
        For i = LBound(ary) To UBound(ary)
            If ary(i) = s Then
                FruitCounter = FruitCounter + 1
                GoTo ext1
            End If
        Next i
ext1:
    Next r
End Function

用户定义函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx

    删除UDF:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 从Excel使用UDF:

      =FruitCounter(A1:A10,"apple")
      

      要了解有关宏的更多信息,请参阅:

      http://www.mvps.org/dmcritchie/excel/getstarted.htm

      http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

      http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

      有关UDF的详细信息

      必须启用宏才能使其生效!