查找单元格中单词出现的次数

时间:2019-03-27 20:49:29

标签: excel

我试图查找给定单词在字符串单元格中出现的次数。可以用来计算发生次数的公式是什么?

3 个答案:

答案 0 :(得分:1)

假设A1fun 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个参数...

  • strText -您要在其中搜索的文本。
  • strWord -您要搜索的文本。
  • bIgnoreCase -您是否希望搜索区分大小写?这是可选的,默认为false。

然后您可以在单元格中使用它...

Usage

我希望有帮助。

答案 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"))