excel中怎么能实现前合并单元格中几个数,在后一格计算乘积

如图,A1,B1合并格中的数,怎么在C1中计算出乘积值。并A1,B1合并格为空时,不返回#N/A值

将下边dychj8827197的VBA代码改成如下这样:

Function mm(ByVal rg As Range) As Double
Dim reG As Object, mf As Object, m, s As Double
s = 1
Set reG = CreateObject("vbscript.regExp")
With reG
    .Global = True
    .Pattern = "\d+\.\d+"
    Set mf = .Execute(rg.Value)
    For Each m In mf
        s = s * m
    Next
End With
mm = s
End Function

另外在C1输入公式:=IF(mm(A1)=1,"",mm(A1)),下拉即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-25
=IF(A2<>"",VALUE(LEFT(A2,FIND("T",A2)-1))*VALUE(MID(A2,FIND("x",A2)+1,FIND("L",A2)-FIND("x",A2)-1))*VALUE(MID(A2,FIND("L",A2)+2,FIND("W",A2)-FIND("L",A2)-2)),"")

当值为空时 显示 空
第2个回答  2015-04-25
tx lx w 是固定的字母的话可以的。追问

字母是固定的,但也有可能没有字母

追答

没字母的傻啥样?给例子?

追问

也是上面的数一样,只是少了数后面的字母

第3个回答  2015-04-24
建议用VBA来解决。。。追问

问题是要怎么做才能实现?

追答

自定义函数代码如下,用法见图及附件


Function mm(ByVal rg As Range) As Double
Dim reG As Object, mf As Object, m, s
Set reG = CreateObject("vbscript.regExp")
With reG
    .Global = True
    .Pattern = "\d+\.\d|x"
    Set mf = .Execute(rg.Value)
    For Each m In mf
        s = s & m
    Next
End With
mm = Evaluate("=" & VBA.Replace(s, "x", "*"))
End Function


相似回答