发布网友 发布时间:2022-04-23 23:58
共3个回答
热心网友 时间:2023-09-08 21:08
你这样记录数据是自己给自己添麻烦。
不过也还是有公式可以计算的。如图:
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。
热心网友 时间:2023-09-08 21:09
从你给的样本数据看,数学相对规范,可以用固定列宽进行分列,或者分别以率和W为标识符进行分列。也可以用字符截取函数MiD把数字取出来,比如MiD(A1,13,4)可能会得到第一个数。把数字单独分列出来后计算就简单了。热心网友 时间:2023-09-08 21:09
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