查找公式中特定字符的数量

查找公式中特定字符的数量

+我正在尝试在 Excel 中单个单元格内的公式中找出 的数量。

如果它是一个包含文本的普通单元格,这将非常容易。但由于我正在处理的文件的限制,我需要保持单元格的格式不变。

简而言之:

  • 细胞A1=123,12+234,45+790,44
  • 单元格A2=2,因为在单元格 A1 中发现两个 +

答案1

您可以使用自定义 vba 函数(将此代码放入模块中):

Option Explicit

Function countChar(cell As Range, pattern As String)
    countChar = UBound(Split(cell.Formula, pattern))
End Function

然后在工作表中使用此函数:

=countChar(A1;"+")

答案2

虚拟专用网络

使用此代码创建一个函数:

Function GETFORMULA(c As Range) As String
    If c.HasArray Then
        GETFORMULA = "{" & c.Formula & "}"
    ElseIf VarType(c) = vbString And Not c.HasFormula Then
        GETFORMULA = c.Value
    Else
        GETFORMULA = c.Formula
    End If
End Function

ff.公式将显示其中“+”出现的次数。

=LEN(GETFORMULA(cell))-LEN(SUBSTITUTE(GETFORMULA(cell),"+",""))  

非 VBA

突出显示包含公式的单元格。如果您只需要处理一个单元格,只需'在之前添加一个=,然后跳过下一步。

Ctrl+ H=输入找什么'=进入用。。。来代替。这会将公式转换为文本。

在空白单元格中使用此公式来计算“+”出现的次数。

=LEN(cell)-LEN(SUBSTITUTE(cell,"+",""))

要将单元格恢复到原来的状态,请突出显示它们,按Ctrl+H并替换'==。这样做会导致上面的公式显示 0。

答案3

此函数将获取传递给它的单元格的公式(即您在=NumPlus(A1)工作表上调用它)并沿着它计算加号。您可以稍微修改它以将要计算的字符作为参数。

Option Explicit
Function NumPlus(cel As Variant) As Variant
    Dim formstr As String
    Dim i As Integer

    NumPlus = 0
    formstr = cel.Formula

    For i = 1 To Len(formstr)
        If Mid(formstr, i, 1) = "+" Then
            NumPlus = NumPlus + 1
        End If
    Next i
End Function

相关内容