二维码 购物车
部落窝在线教育欢迎您!

makearray函数用法6例

 

作者:小窝来源:部落窝教育发布时间:2024-04-12 09:50:24点击:375

分享到:
0
收藏    收藏人气:0人
版权说明: 原创作品,禁止转载。
编按:

教程介绍Excel或者WPS表格中的MAKEARRAY函数用法6例。包括基本用法2列,以及同时查找多个查找值并返回多列数据等4例。

 

今天小窝向大家介绍MAKEARRAY函数用法,在Excel和新版的WPS表格中都可以使用。

1.作用与语法

MAKEARRAY函数须搭配LAMBDA函数使用,它会生成指定行列数的数组。数组中的值由LAMBDA函数生成。

=MAKEARRAY(行数,列数,LAMBDA运算式)

行数,指定需要输出的数组行数;

列数,指定需要输出的数组列数;

LAMBDA运算式,用于计算生成数组中的每个值。

注意:因为Excel函数不支持数组的数组,所以MAKEARRAYLAMBDA每次运算结果只能是单个值而不能是数组。

2. MAKEARRAY基本用法

MAKEARRAY函数的行、列参数,可以参与值的计算,也可以不参与值的计算。

1)行列数参与值的运算

当行或列数参与运算时,其各代表一个从1到自己的序列。

譬如,为某单元楼生成门牌号,一共5层,每层3户。

公式=MAKEARRAY(5,3,LAMBDA(R,C,R&"-"&C))

 

图形用户界面, 应用程序, 表格
描述已自动生成

 

说明:

53户(每层)的门牌号一共53列,所以MAKEARRAY公式中行数是5,列数是3

行数5,在此处代表了一个行序列值{12345}

列数3,在此处代表了一个列序列值{123}

LAMBDA运算式,R变量代表行数,将从15逐个取值;C变量代表列数,将从13逐个取值;然后每个R值和C值通过连接符组成1-11-21-31-4等值。

 

图示
描述已自动生成

 

2)行列数不参与值的计算

当行列数不参与值得计算时,它们只用于确定结果数组的大小。

譬如,需要生成34列的随机数。

公式=MAKEARRAY(3,4,LAMBDA(r,c,RANDBETWEEN(1,20)))

 

表格
描述已自动生成

 

说明:

此处行数和列数都没有参与数值的计算,只是确定了结果数组是34列,每个值由随机函数RANDBETWEEN生成。

此处生成随机数数组有更简单的函数RANDARRAY

 

3. MAKEARRAY典型实例

1)九九乘法表

公式=MAKEARRAY(9,9,LAMBDA(x,y,IF(x>=y,y&"*"&x&"="&y*x,"")))

 

表格
描述已自动生成

 

说明:

行列数参与了值的计算。

当行值X大于等于列值Y时,等于Y&"*"&X&"="&Y*X,否则等于空。XY的取值都是19

 

2)求各行最大值

MAP函数教程中,小窝曾例举用一个公式(不下拉填充)求各行最大值。但是用MAP存在一个问题,就是列数越多,变量就越多。而用MAKEARRAY函数,则不存在这样的问题。

公式=MAKEARRAY(COUNTA(B37:B42),1,LAMBDA(X,Y,MAX(INDEX(C37:E42,X,))))

 

表格
描述已自动生成

 

说明:

此处,行数参与了值的计算。

COUNTA(B37:B42)用于得到需要的行数,6;列数就是1

INDEX(C37:E42,X,)逐次从行序列{123456}中取X值引用C37:E42中各行,然后用MAX获得各行最大值。

 

3)同时查找多个查找值并返回多列

不管是VLOOKUP还是XLOOKUP,都只能是:要么同时查找多个查找值,返回单列数据;要么查找一个值,但可以同时返回多列值。它们不可能同时查找多个查找值并返回多列值

 

图形用户界面, 应用程序, 表格, Excel
描述已自动生成

 

现在搭配MAKEARRAY,问题解决:

=MAKEARRAY(3,9,LAMBDA(R,C,XLOOKUP(INDEX(B58:B60,R,),B47:B55,INDEX(C47:K55,,C))))

 

表格
描述已自动生成

 

说明:

此处,行列数都参与了值的计算。

INDEX(B58:B60,R,)1~3的行序列中逐个取R值引用B58:B60的各行作为查找值;

INDEX(C47:K55,,C)1~9的列序列中逐个取C值引用C47:K55中各列作为返回值。

 

4)按指定字符数拆分字符串成多列

譬如下方需要将AO的一个字符串按2个字符一组拆分为多列。

 

图片包含 图示
描述已自动生成

 

公式=MAKEARRAY(1,ROUNDUP(LEN(B64)/2,0),LAMBDA(R,C,MID(B64,2*C-1,2)))

 

表格
中度可信度描述已自动生成

 

说明:

此处只有列数参与了值的计算。

ROUNDUP(LEN(B64)/2,0)计算出拆分的列数。

MID(B64,2*C-1,2)2*C-1依次从列序列中取C值计算出开始提取字符的位置,然后用MID提取2个字符。

 

MAKEARRAY函数,日常可能用得不多。但冲着它搞定了同时查找多个查找值并返回多列数据的难点,也值得大家了解和学习。

截止现在,LAMBDA函数的6个伴生函数,小窝已经介绍了4个,下次将介绍最后两个BYCOLBYROW

 

本文配套的练习课件请添加客服微信buluowojiaoyu索取。

Excel高手,快速提升工作效率,部落窝教育Excel精品好课任你选择

扫下方二维码关注公众号,可随时随地学习Excel

IMG_256

相关推荐:

新函数LAMBDA的用法(下)——递归运算详解

XLOOKUP函数在常规用法上与VLOOKUPLOOKUP的对标!

Xlookup的神奇用法——相交查找

Excel生成随机时间和日期

版权申明:

本文作者小窝;部落窝教育享有稿件专有使用权。若需转载请联系部落窝教育。