我正在寻找一种在单元格范围内找到精确文本字符串的方法,这样我就可以计算子字符串的出现次数。确切地说,我的意思是如果范围包含多次出现的值“apple”和“apples”,并且我想计算“apple”的出现次数,我不希望包含“apples”。我已尝试使用COUNTIF和SUM(LEN / SUBSTITUTE)公式,但它们返回“apple”和“apples”的计数,因为“apples”包含字符串“apple”。思考?
答案 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)非常易于安装和使用:
如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
删除UDF:
从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的详细信息
必须启用宏才能使其生效!