如何使用 excel 公式提取单元格内字符串中的字符

How to extract characters in a string within a cell using in excel formula

这是 A1 单元格中的示例字符串:

13TR@1X1127, 13TR@3X2500, @1X1373

我想提取模式@nX 中的"n",其中n 的长度最多为3 位数字,然后在单元格B1 中对值求和。

示例:

13TR@1X1127, 13TR@3X2500, @1X1373

extract value: 1, 3, 1

And add in B1: 5

我已经把公式写到公式up to 2nd string 但看起来会很长。

=MID(A1,FIND("@",A1,1)+1,FIND("X",A1,FIND("@",A1,1))-FIND("@",A1,1)-1)+IFERROR(MID(A1,FIND("@",A1,FIND("X",A1,FIND("@",A1,1)))+1,FIND("X",A1,FIND("@",A1,FIND("X",A1,FIND("@",A1,1))))-FIND("@",A1,FIND("X",A1,FIND("@",A1,1)))-1),0)

有没有办法简化公式,使其总和为第 N 个字符串?

您可以像这样使用 VBA 函数:

(已编辑 以允许 @X 之间有多个数字。)

Function SumNums(strIn As String) As Integer
    Dim p1 As Integer, p2 As Integer
    p1 = InStr(strIn, "@")
    Do While p1 > 0
        p2 = InStr(p1, strIn, "X") - 1
        SumNums = SumNums + Val(Mid(strIn, p1 + 1, p2 - p1))
        p1 = InStr(p1 + 1, strIn, "@")
    Loop
End Function

还有这样,"number of occurrences"就不用提前决定了