电子表格里,一个单元格的内容是“电费10,车费15,话费80”,怎么用最简单的方法得到“105”的答案

以前是我朋友用宏写了一个函数,可我不会,希望帮我解答下,谢谢

你好, 做了一个函数给你. 不仅可对一单元格内的多个数据求和, 也可以对一个区域内的多单元格多数据求和, 包括有小数点的数据都可以. 

使用: 按ALT+F11,""插入"菜单-->模块,右侧空白处复制并粘贴下面横下内容.  "文件"菜单-->关闭并返回.  使用时只需要输入公式:  =snum(目标单元格) 即可.

==========================================================

Function SNum(rng As Range)

  Dim str As String, i As Integer, cel As Range

  For Each cel In rng

    For i = 1 To Len(cel.Text)

      If VBA.IsNumeric(Mid(cel.Text, i, 1)) Or Mid(cel.Text, i, 1) = "." Then

        str = str & Mid(cel.Text, i, 1)

      Else

        str = str & "+"

      End If

    Next i

    str = str & "+"

  Next cel

  str = Replace(WorksheetFunction.Trim(Replace(str, ".", " ")), " ", ".")

  str = Replace(WorksheetFunction.Trim(Replace(str, "+", " ")), " ", "+")

  SNum = Evaluate(str)

End Function

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-08
A1电费10 A2 车费15 A3 话费80
b1=LOOKUP(9E+307,--MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&5^19)),ROW($1:$99)))
按CTRL+SHIFT+ENTER 结束,然后公式下拉,直接求和。
方法2:按ALT+F11,插入-模块,复制下列语句
Function SplitNumEng(str As String, sty As Byte)
Dim StrA As String
Dim StrB As String
Dim StrC As String
Dim i As Integer
Dim SigS As String
For i = 1 To Len(str)
SigS = Mid(str, i, 1)
If SigS Like "[a-zA-Z]" Then
StrA = StrA & SigS
ElseIf SigS Like "#" Then
StrB = StrB & SigS
Else
StrC = StrC & SigS
End If
Next i
Select Case sty
Case 1
SplitNumEng = StrA
Case 2
SplitNumEng = StrB
Case Else
SplitNumEng = StrC
End Select
End Function
比如你的数据在A1
BI输入 =SplitNumEng(A1,2) 表示提取数字 然后公式下拉,直接求和。追问

不是三个单元格,是在一个单元格里的

追答

A1电费10,车费15,话费80 B1=MID(A1,3,2)+MID(A1,8,2)+MID(A1,13,2)

第2个回答  2011-04-08
不用宏,那么麻烦
你每个表格上对应的行号和列号
比如电费10对应的是 A3, 车费15对应的是A4 话费80对应的A5
那你就在要合计的那个单元格中写公式,直接写入 =A3+A4+A5 就可以了!
其实不麻烦,如有不懂,可再追问……
第3个回答  2011-04-08
用宏就不简单了
我看还是 数据--分列--固定宽度 来分列,再求和的快一点
第4个回答  2011-04-08
在后面的格里写上
=sum(A,B,C),abc分别代表那三列
第5个回答  2011-04-08
在后面的表格输入:
=10+15+80
然后回车就可以了。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网