excel 数字和汉字混合输入,如何自动提取数字求和
展开全部
用自定义函数吧
Function 和(rng As Range)
Application.Volatile
Dim reg As Object, arr, tmp
Set reg = CreateObject("vbscript.regexp")
reg.Pattern = "([^\d]+)"
arr = Split(rng, ")")
For i = 0 To UBound(arr)
If reg.test(arr(i)) = True Then
tmp = arr(i)
Do
tmp = reg.Replace(tmp, "")
Loop Until reg.test(tmp) = False
和 = 和 + tmp * 1
End If
Next
End Function
追问
请问具体操作步骤
追答
alt+F11打开vba编辑器
然后菜单栏点插入》模块》把代码复制进去》关闭,回到excel中就可以使用了。
2013-12-18 · 知道合伙人软件行家
关注
展开全部
自定义函数
Function 求和(Rg)
Dim reg
Set reg = CreateObject("Vbscript.regexp")
With reg
.Global = True
.Pattern = "\d+\.?\d*"
End With
Set mat = reg.Execute(Rg)
For Each m In mat
s = s + Val(m)
Next m
求和 = s
End Function
然后在单元格中输入公式
=求和(C2)
下拉填充公式
Function 求和(Rg)
Dim reg
Set reg = CreateObject("Vbscript.regexp")
With reg
.Global = True
.Pattern = "\d+\.?\d*"
End With
Set mat = reg.Execute(Rg)
For Each m In mat
s = s + Val(m)
Next m
求和 = s
End Function
然后在单元格中输入公式
=求和(C2)
下拉填充公式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在D2中输入公式:
=IF(C2="","",SUMPRODUCT(--TEXT(MID(TEXT(MID(SUBSTITUTE(C2,")",REPT(" ",9)),ROW($1:$100),10),),2,9),"0.00;-0.00;;!0")))
下拉填充。
=IF(C2="","",SUMPRODUCT(--TEXT(MID(TEXT(MID(SUBSTITUTE(C2,")",REPT(" ",9)),ROW($1:$100),10),),2,9),"0.00;-0.00;;!0")))
下拉填充。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-18
展开全部
比较困难,建议查查正则表达式把列分解,然后才能计算
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
D2=SUMPRODUCT(TEXT(LEFT(TEXT(MID(C2&"a",COLUMN(1:1),ROW($1:$5)),),ROW($1:$5)-1),"0%;-0%;0;!0")*ISERR(-MID(C2,COLUMN(1:1)-1,2)))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询