设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
打印 上一主题 下一主题
开启左侧

[Excel技巧] 在Excel中求数值的各位数值和

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-10 10:34:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果需要在Excel中求出一个正整数的各位数值之和,如123456,其各位数值之和1+2+3+4+5+6=21,可以用下面的公式,假如数值在A1单元格中:
    1.用SUMPRODUCT函数:
    =SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))
    说明:假设A1单元格中为数值123456,该公式先用LEN函数返回数值的长度6,并用INDIRECT函数返回“1:6”的引用“$1:$6”,然后用ROW("1:6")获得数组{1;2;3;4;5;6},这里由于SUMPRODUCT函数的参数为数组,所以可以返回数组,最后用MID函数获取各数位的数值{"1";"2";"3";"4";"5";"6"},并用双重否定符“--”将各数转化为数值并求和。
    2.用SUM函数的数组公式:
    =SUM(1*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))
    公式输入完毕后按Ctrl+Shift+Enter结束。
    3.用自定义函数:
    在VBA编辑器中插入“模块”,并输入下面的VBA代码:
    Function SumDigits(ByVal N As Long) As Integer
    Do While N >= 1
        SumDigits = SumDigits + N Mod 10
        N = Int(N / 10)
    Loop
    End Function
    然后在单元格中输入
    =SumDigits(A1)
    由于该代码中定义的变量为Long数据类型,即4 字节的整型值,故其可以计算的最大数值为2147483647。
回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-6-16 19:39 , Processed in 0.188948 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表