文字数字组合的如何提取数字求和?
如题:如何实现使用公式,将单元格中的数字的提取并求和?公式需要先分组,再使用公式。
VBA可以用split函数,使用len和lenb提取数字,do while循环每个split,然后sum =SUM(IFERROR(--MID(SUBSTITUTE(SUBSTITUTE(TRIM(MID(SUBSTITUTE(A3,",",REPT(" ",100)),(ROW(1:99)-1)*100+1,100)),"件",""),"色",""),2,99),"")) 数组,三键结束 数组中的“色”“件”解释一下吗?有时候可能会替换成其他名称,格式不变。 拆成数组"紫色3件";"蓝5件";"青7件";"绿色12件";"黄66件";"橙12件";"红色99件"后替换掉“色”和“件"方便提取中间的数字 =SUM(IFERROR(--RIGHT(TEXT(MID(SUBSTITUTE(D3,"件",REPT(" ",9)),ROW(1:199),9),),8),)) Sub RegExp()
Dim RegExp, Match, iMatch, MhVal$, SumMh%, i%
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
Set RegExp = CreateObject("vbscript.regexp")
RegExp.Pattern = "(\d+)"
RegExp.Global = True
Set Match = RegExp.Execute(Cells(i, 1))
If Match.Count > 0 Then
For Each iMatch In Match
MhVal = iMatch.submatches(0)
SumMh = SumMh + Val(MhVal)
Next
End If
Cells(i, 2) = SumMh
SumMh = 0
Next i
End Sub
=EVALUATE(SUBSTITUTE(TRIM(CONCAT(MIDB(A3,ROW($1:$99),1)))," ","+")) 三键结束 =SUMPRODUCT(--TEXT(MID(TEXT(MID(SUBSTITUTE(A3,"件",REPT(" ",9)),ROW($1:$88),9),),2,8),"[>];;0;!0")) 这个问题我回答了很多次了,在不规则的文本中提取字符,非正则表达式公式莫属。
使用方法如图所示