excel公式教程:求字符串中的数字组成的数能够被指定数整除的数的个数( 九 )


一个256行3列的数组与一个3行1列数组相乘,得到一个256行1列的数组:
{0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;3;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0}
也就是256行3列数组中每行可以被3、5、7整除的结果组成的数组,即1代表该行中可以被3、5、7中的某个数整除,2代表该行中可以被3、5、7中的某两个数整除,3代表该行中可以被3、5、7中的三个数整除 。将得到的数组与0相比较:
(MMULT(IFERROR(0+(MOD(INDEX(MID(A1,Arry1,IF(1+LEN(A1)-Arry1>=TRANSPOSE(Arry1),TRANSPOSE(Arry1))),N(IF(1,Arry3)),N(IF(1,Arry4))),{3,5,7})=0),0),{1;1;1})>0)
得到一个由TRUE/FALSE值组成的数组,其中TRUE值表示可以被3、5或7整除,将得到的数组与0相加,将TRUE/FALSE强制转换成1/0,然后传递给SUM函数求和,得到值9,也就是该字符串中分拆出的能够被3、5或7整除的数的个数 。
小结:尽管这个案例似乎没有多少实用性,但在解决问题的过程中使用的处理字符串的技术是非常值得学习和借鉴的 。
1.将字符串拆分成所有可能组合的技术 。
2.将二维数组转换成一维数组的技术 。
3.使用数组乘法统计数值的技术 。

推荐阅读