打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
LAMBDA连载(3)--MAKEARRAY实现函数里的双循环

Make:制造,生成

Array:数组

函数MAKEARRAY:创建数组。

=MAKEARRAY(行数,列数,LAMBDA())

行数和列数分别用于指定所要创建数组的行数和列数,必须是正整数。

数组内容则由LAMBDA决定。

如下公式表示创建一个3行6列的数组,数组元素是100:

=MAKEARRAY(3,6,LAMBDA(x,y,100))

数组元素可以是数字,字符,文本……具体是什么取决于需求:

=MAKEARRAY(3,6,LAMBDA(x,y,"红"))

随机颜色二维数组

如果仅限于填充固定值那未免也太无聊了点,别忘了LAMBDA中可以调用更多函数来自由定义要实现的功能,这就给了用户极大的发挥空间。

结合CHOOSE和RANDBETWEEN实现用随机颜色填充:

=MAKEARRAY(3,6,LAMBDA(x,y,CHOOSE(RANDBETWEEN(1,3),"红","黄","蓝")))

九九乘法表

对于大部分普通用户来说,二维数据的运算和查找引用就是中等复杂程度,而MAKEARRAY通常用于创建数组并参与到更复杂的计算中,这就注定它不会被大面积推广。

制作九九乘法表是它最经典的应用。

创建一个9行9列的数组:

=MAKEARRAY(9,9,LAMBDA(x,y,x))

LAMBDA计算式x表示直接输出其行号x.如果所示其结果是依次输出1~9.

行号和列号默认为从1开始以1递增的数组序列,这是引用MAKEARRAY行列号的关键要点。

把行号,列号,以及它们的乘积三者连接,就得到九九乘法表的雏形:

=MAKEARRAY(9,9,LAMBDA(x,y,x&"x"&y&"="&x*y))

上图中红色字体部分是不需要出现的数据,仔细观察其规律:行号小于列号。

于是有了方向:当行号小于列号时输出空,否则输出才输出乘法表达式。

在LAMBDA计算表达式中再添加IF函数实现这一逻辑:

=MAKEARRAY(9,9,LAMBDA(x,y,IF(x<y,"",x&"x"&y&"="&x*y)))

重复文本

将A列的文本按B列数字重复:

=MAKEARRAY(COUNTA(A:A),MAX(B:B),LAMBDA(x,y,IF(y>INDEX(B:B,x),"",INDEX(A:A,x))))

公式的关键在于根据列号与数字的对比结果来输出指定文本或空值。需要充分理解前文中提到的“行号和列号默认为从1开始以1递增的数组序列” 这一要点。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【MAKEARRAY函数】生成指定行列的计算数组!
Excel中REDUCE与LAMBDA函数由浅入深地学习与应用
NO.187# MAKEARRAY函数小课堂
新函数MAKEARRAY,同时查找多个查找值并返回多列数据
MAKEARRAY
Excel新函数:MAKEARRAY函数基础
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服