太牛啦!Excel循环计算神器,MAP+MAP组合效率翻倍!

yumo6661周前 (07-23)技术文章6

太牛啦!Excel循环计算神器,MAP+MAP组合效率翻倍!

场景一:

A列中有一组递增的数,在B列中通过函数计算,A列中的数第n次大于20*n。也就是第一次大于20返回1,第二次大于20*2返回2,第三次大于20*3返回3,依此类推。其余的都返回0。

思路:

在C列通过公式“=A2:A14/20”计算可以发现,要求第n次大于20*n,即C列结果为1的下一位返回1、结果为2的下一位返回2、结果为3的下一位返回3。

于是考虑采用向上取整数,如果取到的整数大于上一位整数,则为满足条件的数据,结果取原始数据/20再取整数位就可以了。

公式:

=MAP(A2:A14,LAMBDA(X,IF(X<=20,0,IF(ROUNDUP(X/20,0)>ROUNDUP(OFFSET(X,-1,0)/20,0),INT(X/20),0))))

解析:

MAP(A2:A14,LAMBDA(X,...))表示将数组A2:A14中的每个值依次传递到LAMBDA函数中作为X执行计算。

ROUNDUP(X/20,0)表示对“X/20”向上取整数;

ROUNDUP(OFFSET(X,-1,0)/20,0)表示对X的前一个计算后的值向上取整数;

IF(X<=20,0,...))表示如果X小于20,直接返回0,否则进入一步计算;

IF(ROUNDUP(X/20,0)>ROUNDUP(OFFSET(X,-1,0)/20,0),INT(X/20),0)判断原数据除以20的商向上取整数,如果大于上一位取到的整数,则返回INT(X/20),即当前数据除以20的整数位,否则返回0。

场景二:

混合文本数字中提取数字计算加权平均数。

权重表如下图所示:

思路:

先从混合文本中提取出数字,再逐个乘以各自的权重系数,最后就会得到加权平均数。

公式一:

=MAP(A1:A9,LAMBDA(a,LET(b,REGEXP(a,"[\d.-]+"),SUM(MAP(F22:L22,SEQUENCE(,7),LAMBDA(x,y,x*INDEX(b,,y)))))))

解析:

MAP(A1:A9,LAMBDA(X,...))表示将数组A1:A9中的每个值依次传递到LAMBDA函数中作为X执行计算。

LET(b,REGEXP(a,"[\d.-]+")将REGEXP提取出的数字定义为b,

SUM(MAP(F22:L22,SEQUENCE(,7),LAMBDA(x,y,x*INDEX(b,,y))))这部分为计算表达式。

其中,计算表达式中再次用到了MAP函数,x*INDEX(b,,y)表达MAP传递权重系数与提取到的数据相乘,最后SUM进行求和。

总的来说,就是第一个MAP依次传递混合文本执行计算,提取出数字;第二个MAP传递权重系数和提取出的数字进行计算后SUM求和。

使用MAP+MAP组合求解的目的在于研究MAP函数的嵌套用法,

比如:

=MAP(A1:A9,LAMBDA(a,LET(b,REGEXP(a,"[\d.-]+"),TEXTJOIN("/",,MAP(F22:L22,SEQUENCE(,7),LAMBDA(x,y,x&"*"&INDEX(b,,y)&"="&x*INDEX(b,,y)))))))

还可以返回计算过程公式:

本例中公式也可简化为公式二:

=MAP(A1:A9,LAMBDA(x,SUM(REGEXP(x,"[\d.-]+")*F22:L22)))

解析:

REGEXP(x,"[\d.-]+")*F22:L22为数组写法,表示提取到的一行7个数字整体与权重行数据相乘;

SUM(...)表示对计算得到的结果求和。

同样,MAP(A1:A9,LAMBDA(x,...))表示将数组A1:A9中的每个值依次传递到LAMBDA函数中作为x执行计算;

总体来说,就是每传递一个混合文本,提取出数字后与权重系数相乘再求和得到加权平均数。

相关文章

ROUND、ROUNDIP和ROUNDDOWN函数应用技巧

ROUND、ROUNDUP和ROUNDDOWN函数属于Excel表格中数字与三角函数类别,都是对数字进行四舍五入运算。ROUND函数属性:语法结构ROUND(number,num_digits)中文表...

如何利用VLOOKUP函数光速计算个人所得税?

说到VLOOKUP这个查找引用函数,相信从事财务工作的亲们都对它倍感亲切,因为它是咱们财务圈的“大众情人”,在财会工作中运用相当普遍。我们都知道,VLOOKUP函数的第4个参数包括两种查找方式,即精确...

Excel常用函数介绍(excel常用函数详细讲解)

Excel 函数是一种非常强大的工具,可以帮助我们更加高效地处理和分析数据。下面介绍一些 Excel 函数使用技巧,帮助你更加灵活地使用 Excel。IF 函数IF 函数是 Excel 中非常常用的一...

Excel中的常用数学函数(excel表格数学函数)

Excel中的常用数学函数包含了ROUND(四舍五入函数)、ABS(取绝对值函数)、INT(取整函数);MOD(取余函数)、RANDBETWEEN(随机函数)、PRODUCT(乘积函数)等等,这些函数...

Excel函数公式大全(图文详解)(excel函数公式大全2021)

Excel函数公式大全(图文详解)我把每个函数的中文名都制作成了目录,通过目录能够快速定位到相应的函数。如果这篇文章对你有帮助,记得点赞关注哟。全文为Excel干货实操指南,为方便学习求和SUM函数是...

Excel常用函数使用说明(excel 常用函数介绍)

一、条件判断函数 IF 功能:根据条件返回不同结果。示例:输入 =IF(A1>80,"合格","不合格"),若A1数值>80,显示“合格”,否则“不合格”。 注...