Excel 2013 - 计算单元格中字符串的出现次数

时间:2016-02-29 16:47:41

标签: excel countif

我正在尝试创建一个单元格公式,它会给出单元格中一个或多个字符串出现次数。

如果我的单元格A1包含3.1.1-4 然后我希望我的公式返回3(或者 - 或 - 出现在单元格字符串中。

到目前为止,我有一个公式:

  

= COUNTIF(A1:A1, “* - *”)+ COUNTIF(A1:A1, “*。*”)

但这只返回2(我猜1是因为“。”出现+ 1因为“ - ”出现)

如何获取公式来计算任一字符串的出现次数而不是字符串的存在?

2 个答案:

答案 0 :(得分:0)

这是一个VBA解决方案。它需要两个字符串并计算第二个传递的字符串是第一个字符串的子字符串的次数。它使用了一个天真的线性搜索。默认情况下,它不区分大小写。为区分大小写的搜索设置可选的IgnoreCase参数等于False

Function CountIn(ByVal s As String, ByVal t As String, Optional IgnoreCase As Boolean = True) As Long
    Dim i As Long, count As Long, n As Long, k As Long
    n = Len(s)
    k = Len(t)

    If IgnoreCase Then
        s = UCase(s)
        t = UCase(t)
    End If

    For i = 1 To n - k + 1
        If Mid(s, i, k) = t Then count = count + 1
    Next i

    CountIn = count
End Function

然后以你的例子,

=COUNTIN(A1,"-")+COUNTIN(A1,".")

评估为3

答案 1 :(得分:0)

使用以下公式:

=(LEN(E1)-LEN(SUBSTITUTE(E1,".","")))/LEN(".")+(LEN(E1)-LEN(SUBSTITUTE(E1,"-","")))/LEN("-")

enter image description here