EXCEL中如何提取一段文本中的数字求和?很多数字带小数

想在A2单元格中提取A1中的数字求和,网上找了很多方法都不行,算出来结果不对,注意这个是带小数的很多数字,掺杂着中文和英文以及单位,包含换行,求大神帮忙,若是VB代码请讲清楚使用方法,谢谢!

你这样记录数据是自己给自己添麻烦。

不过也还是有公式可以计算的。如图:

B1=SUM(IFERROR(--TRIM(MID(SUBSTITUTE(SUBSTITUTE(A1,"功率","MW"),"MW",REPT(" ",199)),ROW($2:$9)*199-198,199)),0))

同时按Ctrl+Shift+Enter三键输入数组公式

公式中的ROW($2:$9)考虑了有8个数字要提取,如果更多,加大数字9。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-18
从你给的样本数据看,数学相对规范,可以用固定列宽进行分列,或者分别以率和W为标识符进行分列。也可以用字符截取函数MiD把数字取出来,比如MiD(A1,13,4)可能会得到第一个数。把数字单独分列出来后计算就简单了。
第2个回答  2019-11-18

VBA用空格和MW进行分割,代码如下:

Sub t()


    s = Replace([A1].Value, " ", "")

    

    Dim reg As Object

    Dim mainMatch As Object 'Matchcollection

    Dim subMatch As Object   'Match

    Set reg = CreateObject("VbScript.regexp")  '创建正则项目

    With reg

        .Global = True '匹配多次

        .IgnoreCase = True  '匹配大小写

        .Pattern = "[\d.]+" '正则表达式,匹配选项

    End With

    Set mainMatch = reg.Execute(s) '执行语句

    For Each subMatch In mainMatch '遍历

        sm = sm + Val(subMatch)

        Debug.Print subMatch

    Next

    Debug.Print sm

    [A2] = sm


End Sub

相似回答