登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Oh! I see you!

Hi! ppmm~~

 
 
 

日志

 
 

提取单元格的数字相加-求和  

2009-08-27 22:26:46|  分类: Excel |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

标题是囧了一些,方便搜索……

本文链接:http://oicu.cc.blog.163.com/blog/static/1230394712009727102646193/

问题:

发信人: zplvll (~~), 信区: OfficeSoft
标  题: excel,34/45这种数据怎单独把/前后数据取出?
发信站: 水木社区 (Mon Aug 24 15:53:22 2009), 站内

其中部分数据是34/ 或/65这种形式,不改变原始数据,只将数据取出来求和,

有内建函数最好,vba也行,请指点,谢谢

vba法解答:

不管是 /34 还是 45/ 还是夹杂其他的字符,反正就是把所有的数字提取
出来组成数字,然后相加……
然后就可以用自定义函数 =SSUM(A1:B3) 来求和了。


' by oicu#lsxk.org 2009/8/26
' Excel vba - Module1

Function SSum(rng As Range) As Double
    Dim T As Range
    Dim s As Double
    Application.Volatile
    '每次单元格改动时,都会自动更新这个自定义函数的值
    For Each T In rng
        s = s + GetNum(T.value)
    Next
    SSum = s
End Function


Function GetNum(Srg As String) As Double
    Dim i%
    Dim s, MyString As String
    Dim Bol As Boolean

    For i = 1 To Len(Srg)
        s = Mid(Srg, i, 1)
        Bol = s Like "[0-9.]"
        If Bol Then MyString = MyString & s
    Next i
    If MyString <> "" And IsNumeric(MyString) Then GetNum = Val(MyString)
    '含有多个小数点时认定为非数字,值为0。
End Function

 

另附函数法(Ctrl+Shift+Enter 将这些公式作为数组进行输入)

{=SUM(VALUE(SUBSTITUTE(A1:A3,"/","")))}


下面这个是别人写的,没测试:

发信人: iam0 (R~~O~~O~~O~~~M~~~), 信区: OfficeSoft
左边 {=SUM(VALUE(left(A6:A17,FIND("/",A6:A17)-1)))}
右边 {=SUM(VALUE(RIGHT(A6:A17,LEN(A6:A17)-FIND("/",A6:A17))))}

如果/左右都是整数可以用这样的偏门方法
{=SUM(INT(SUBSTITUTE(A1:A20,"/",".")))}

 


相关博文:

提取Excel单元格的数字相加-求和(续文)

  评论这张
 
阅读(2624)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018