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

yumo6662个月前 (07-23)技术文章12

太牛啦!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秘籍大全,正文开始一、trunc函数功能:将数字的小数部分截去(不进行舍入或四舍五入)。结构:=TRUNC(数值,小数位数)二、int函数功能:将数字向下舍入到最接...

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

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

python中有哪些内置函数可用于编写数值表达式?

在 Python 中,用于编写数值表达式的内置函数很多,它们可以帮助你处理数学运算、类型转换、数值判断等。以下是常用的 内置函数(不需要导入模块)按类别归类说明: 一、基础数值处理函数函数作用示例ab...