Excel是许多职场人士常用的烦恼之源,学习相关技巧需耗费大量时间。简道云作为一款办公神器,能很好地替代Excel。它是一个在线表单和数据管理工具,支持PC端和手机微信浏览器操作。除此之外,简道云还能辅助企业进行流程审批、财务报销、人事管理等业务管理,满足不同需求。
在单元格中是一个数,使用公式求组成这个数的单个数字相加的和,如下图1所示。
在单元格中是一个数,使用公式求组成这个数的单个数字相加的和,如下图1所示。
图1
先不看答案,自已动手试一试。
公式
在单元格C3中,输入数组公式:
=SUM(1*(MID(B3,ROW(INDIRECT(“1:”& LEN(B3))),1)))
下拉至单元格C10。
公式解析
公式中:
ROW(INDIRECT(“1:” & LEN(B3)))
用来生成连续的整数,其最大值为单元格B3中数值的长度,即:
{1;2;3;4;5;6;7;8;9}
将此数组传递给MID函数:
MID(B3,ROW(INDIRECT(“1:” &LEN(B3))),1)
即:
MID(B3, {1;2;3;4;5;6;7;8;9},1)
得到数组:
{“1″;”2″;”3″;”4″;”5″;”6″;”7″;”8″;”9”}
实现了将数值进行拆分。
将上面的数组与1相乘转换为数字:
1*(MID(B3,ROW(INDIRECT(“1:” &LEN(B3))),1))
即:
1*{“1″;”2″;”3″;”4″;”5″;”6″;”7″;”8″;”9”}
得到数组:
{1;2;3;4;5;6;7;8;9}
传递给SUM函数求和:
=SUM({1;2;3;4;5;6;7;8;9})
得到结果:
45
另一个公式
还可以使用SUMPRODUCT函数来解决。这是一个非数组公式:
=SUMPRODUCT(MID(B3,ROW(OFFSET($A$1,,,LEN(B3))),1)+0)
公式中:
OFFSET($A$1,,,LEN(B3))
以单元格A1为起点,扩展至单元格B3长度数量的单元格,本例中为A9,即单元格区域A1:A9,传递给ROW函数:
ROW(OFFSET($A$1,,,LEN(B3)))
解析为:
{1;2;3;4;5;6;7;8;9}
将上面的数组传递给MID函数:
MID(B3,ROW(OFFSET($A$1,,,LEN(B3))),1)
即:
MID(B3, {1;2;3;4;5;6;7;8;9},1)
得到:
{“1″;”2″;”3″;”4″;”5″;”6″;”7″;”8″;”9”}
实现了数拆分成单个数字。
然后与0相加,得到数值组成的数组:
MID(B3,ROW(OFFSET($A$1,,,LEN(B3))),1)+0
即:
{“1″;”2″;”3″;”4″;”5″;”6″;”7″;”8″;”9”}+0
得到:
{1;2;3;4;5;6;7;8;9}
将其传递给SUMPRODUCT函数:
=SUMPRODUCT({1;2;3;4;5;6;7;8;9})
对于单个数组,SUMPRODUCT函数直接对其中的元素求和,得到结果:
45