如何使用 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"就不用提前决定了
这是 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"就不用提前决定了