如图,A列为数据源,想要提取出每个单元格里面的好数字并汇总求各,体现在B列中,公式如下:
=MAP(A2:A4,LAMBDA(x,SUM(--TEXTSPLIT(x,TEXTSPLIT(x,VSTACK(SEQUENCE(10)-1,"."),,1),,1))))
公式思路:
因为要求的结果正好与A列单元格一一对应所以使用map函数来处理,如果源数据有多列也可以使用offset函数配合map函数。当然我是不喜欢学习太多循环函数的,主张以reduce为主来解决问题,那么reduce函数的公式如下:
=DROP(REDUCE("",A2:A4,LAMBDA(x,y,VSTACK(x,SUM(--TEXTSPLIT(y,TEXTSPLIT(y,VSTACK(SEQUENCE(10)-1,"."),,1),,1))))),1)
也是可以解决的。但公式要比map长,有时候仍然愿意使用map的原因就是:这种与目标数组长度或宽度等长的数组,使用map生成比较准确,行列不会发生变动,便于传递给filter等函数。
评论 (0)