ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 函数与公式 > 如何将一串数字逐位累加到 1 位数?

如何将一串数字逐位累加到 1 位数?

作者:绿色风 分类: 时间:2022-08-17 浏览:163
楼主
gvntw
Q:如何将一串数字逐位累加到 1 位数,如123456789=1+2+3+4+5+6+7+8+9=45=4+5=9
A:假如数字在A1,公式如下:

  1. =MOD(A1-1,9)+1
2楼
刘志文
学习了!!
3楼
wshcw
我对版主的公式还是有异议
当A1=0时出错
4楼
wshcw
=ROUND(MOD(SUMPRODUCT(--(0&MID(A1,COLUMN(1:1),1))),9+10^-9),)
如果A1不超过9位数,建议公式用:
=ROUND(MOD(A1,9+10^-13),)
5楼
gvntw
0可以用IF来判断:
=IF(A1,MOD(A1-1,9)+1,)
6楼
nygv
楼主的公式只适应于A1<=9位数字,否则出错。
7楼
nygv
我看到一个高手的公式,分享一下:
=A1-INT((A1-1)/9)*9
不适用于空单元格或只有一个0的情形。
8楼
gouweicao78
数学上的分解:
12345
=1*10000+2*1000+3*100+4*10+5
=1*(9999+1)+2*(999+1)+3*(99+1)+4*(9+1)+5
因此,12345对9求余,可以将9999、999、99、9倍的部分都去掉,剩下:
=1*1+2*1+3*1+4*1+5
=11
同理分解为=1*(9+1)+1,即将9倍去掉,=1+1=2
也就是各个数位逐位循环累加至1位数
9楼
gong44ds
=1*1+2*1+3*1+4*1+5
不是=15吗?
10楼
悟空师弟


1*1+2*1+3*1+4*1+5结果是15,最终结果是6而不是2,实属手误!
11楼
yaoxuhuijsz
解得好
12楼
paul001
一个问题居然有这么多 的答案
13楼
yaoxuhuijsz
有意思

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap