我试图查找给定单词在字符串单元格中出现的次数。可以用来计算发生次数的公式是什么?
答案 0 :(得分:1)
假设A1
有fun fun no fun
,并且您想知道多少次“有趣”的发生,您可以使用以下公式:
=(LEN(A1)-LEN(SUBSTITUTE(A1,"fun","")))/LEN("fun")
编辑:请注意,这可能并不完美,因为它将为3
返回fun funky fun no
,而不是2
。您可以通过在要查找的单词周围添加空格来解决此问题,然后检查单元格中的第一个单词以查看其是否符合您的要求。 ...所以我想说这是一个有限的用例。
答案 1 :(得分:1)
如果无法通过标准公式方法获得答案,请尝试使用此UDF。将其放入VBA编辑器中的新模块中。如果您不确定如何在Google中“ 如何在excel VBA中创建新模块”。
Public Function CountSpecificWord(ByVal strText As String, ByVal strWord As String, Optional ByVal bIgnoreCase As Boolean = False) As Long
Application.Volatile
Dim i As Long, strThisWord As String, arrWords() As String
arrWords = Split(strText, " ")
If bIgnoreCase Then strWord = UCase(strWord)
For i = 0 To UBound(arrWords)
strThisWord = arrWords(i)
If bIgnoreCase Then strThisWord = UCase(strThisWord)
If strWord = strThisWord Then CountSpecificWord = CountSpecificWord + 1
Next
End Function
有2个参数...
然后您可以在单元格中使用它...
我希望有帮助。
答案 2 :(得分:0)
如果您只需要计算整个单词,这会很麻烦,但是可以:
=SUMPRODUCT(--(TRIM(MID(SUBSTITUTE(TRIM(A1)," ",REPT(" ",LEN(A1))),LEN(A1)*(ROW(A$1:INDEX($A:$A,LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))+1))-1)+1,LEN(A1)))="fun"))