當前位置: 妍妍網 > 辦公

新函式MAKEARRAY,同時尋找多個尋找值並返回多列數據

2024-04-12辦公

文 前 推 薦


編按:

教程介紹Excel或者WPS表格中的MAKEARRAY函式用法6例。包括基本用法2列,以及同時尋找多個尋找值並返回多列數據等4例。

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

1. 作用與語法

MAKEARRAY函式須搭配LAMBDA函式使用,它會生成指定行列數的陣列。陣列中的值由LAMBDA函式生成。

=MAKEARRAY(行數,列數,LAMBDA運算式)

行數,指定需要輸出的陣列行數;

列數,指定需要輸出的陣列列數;

LAMBDA運算式,用於計算生成陣列中的每個值。

註意:因為Excel函式不支持陣列的陣列,所以MAKEARRAY中LAMBDA每次運算結果只能是單個值而不能是陣列。

2. MAKEARRAY基本用法

MAKEARRAY函式的行、列參數,可以參與值的計算,也可以不參與值的計算。

1)行列數參與值的運算

當行或列數參與運算時,其各代表一個從1到自己的序列。

譬如,為某單元樓生成門牌號,一共5層,每層3戶。

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

說明:

5層3戶(每層)的門牌號一共5行3列,所以MAKEARRAY公式中行數是5,列數是3。

行數5,在此處代表了一個行序列值{1;2;3;4;5};

列數3,在此處代表了一個列序列值{1,2,3}。

LAMBDA運算式,R變量代表行數,將從1到5逐個取值;C變量代表列數,將從1到3逐個取值;然後每個R值和C值透過連線符組成1-1、1-2、1-3、1-4等值。

2)行列數不參與值的計算

當行列數不參與值得計算時,它們只用於確定結果陣列的大小。

譬如,需要生成3行4列的隨機數。

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

說明:

此處行數和列數都沒有參與數值的計算,只是確定了結果陣列是3行4列,每個值由隨機函式RANDBETWEEN生成。

此處生成隨機數陣列有更簡單的函式RANDARRAY。

3. MAKEARRAY 典型例項

1)九九乘法表

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

說明:

行列數參與了值的計算。

當行值X大於等於列值Y時,等於Y&"*"&X&"="&Y*X,否則等於空。X和Y的取值都是1到9。

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,)逐次從行序列{1;2;3;4;5;6}中取X值參照C37:E42中各行,然後用MAX獲得各行最大值。

3)同時尋找多個尋找值並返回多列

不管是VLOOKUP還是XLOOKUP,都只能是:要麽同時尋找多個尋找值,返回單列數據;要麽尋找一個值,但可以同時返回多列值。它們不可能同時尋找多個尋找值並返回多列值。

現在搭配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)按指定字元數拆分字串成多列

譬如下方需要將A到O的一個字串按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個,下次將介紹最後兩個BYCOL、BYROW。

課件下載方式


掃碼入群,下載視訊配套的Excel課件練習。

最後,歡迎加入Excel函式訓練營,學習51個函式、練習課件、輔導答疑。