楼主 gvntw |
Q:如何将一串数字逐位累加到 1 位数,如123456789=1+2+3+4+5+6+7+8+9=45=4+5=9 A:假如数字在A1,公式如下:
|
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 |
有意思 |