二維碼 購(gòu)物車
部落窩在線教育歡迎您!

MAP函數(shù)如何使用?有何意義?

?

作者:小窩來(lái)源:部落窩教育發(fā)布時(shí)間:2024-03-27 14:20:50點(diǎn)擊:1144

分享到:
0
收藏    收藏人氣:0人
版權(quán)說(shuō)明: 原創(chuàng)作品,禁止轉(zhuǎn)載。
編按:

如何使用MAP函數(shù)?MAP函數(shù)有何實(shí)際意義?本篇教程為大家解惑。

 

今天小窩向大家分享MAP函數(shù)的用法。MAP函數(shù)同樣需要嵌套LAMBDA函數(shù)使用。

1.作用與語(yǔ)法

MAP函數(shù)依次將數(shù)組的每個(gè)值代入LAMBDA函數(shù)中進(jìn)行運(yùn)算并以數(shù)組的形式輸出各自的結(jié)果。MAP在此處不是地圖,而是映射:將數(shù)組各值運(yùn)算后的結(jié)果按其原來(lái)位置關(guān)系映射成新數(shù)組。

=MAP(數(shù)組,LAMBDA運(yùn)算式)

數(shù)組,要參與運(yùn)算的數(shù)組,可以有多個(gè)數(shù)組。

LAMBDA運(yùn)算式,是最后一個(gè)參數(shù),其變量的多少取決于數(shù)組的多少。譬如一個(gè)數(shù)組,則LAMBDA只有一個(gè)變量;兩個(gè)數(shù)組,LAMBDA就有兩個(gè)變量。

 

表格
描述已自動(dòng)生成

 

2.基本用法

1)單個(gè)數(shù)組運(yùn)算

譬如求每個(gè)數(shù)據(jù)的平方,公式=MAP(B13:B18,LAMBDA(x,x^2))

 

表格
中度可信度描述已自動(dòng)生成

 

再譬如求數(shù)據(jù)的累加和,公式=MAP(B23:B28,LAMBDA(x,SUM(B23:x)))

 

表格
低可信度描述已自動(dòng)生成

 

說(shuō)明:

數(shù)組中各數(shù)據(jù)參與運(yùn)算包含兩種:既可以是數(shù)組中的各值參與運(yùn)算,也可以是數(shù)組中各單元格參與運(yùn)算。當(dāng)前的累加和,X代表的就是單元格引用而非具體的值。

 

2)多個(gè)數(shù)組運(yùn)算

譬如求兩列數(shù)的和,公式=MAP(A33:A38,B33:B38,LAMBDA(x,y,x+y))

 

表格
描述已自動(dòng)生成

 

說(shuō)明:

多個(gè)數(shù)組運(yùn)算,各數(shù)組的大小須一致,譬如當(dāng)前A33:A38B33:B38都是61列的數(shù)組。

如果運(yùn)算的數(shù)組大小不一致,缺少項(xiàng)將出現(xiàn)#N/A錯(cuò)誤,譬如=MAP(A33:A38,B33:B37,LAMBDA(x,y,x+y))

 

圖形用戶界面, 文本, 應(yīng)用程序
描述已自動(dòng)生成

 

3LAMBDA運(yùn)算的每次結(jié)果須是單個(gè)值而不是數(shù)組

譬如求下列數(shù)據(jù)分別加105的和,公式=MAP(B43:B48,LAMBDA(x,x+{10,5}))得不到正確結(jié)果:

 

圖形用戶界面, 表格
描述已自動(dòng)生成

 

說(shuō)明:

MAP會(huì)輸出由每個(gè)X的結(jié)果組成的數(shù)組,而當(dāng)前每個(gè)X的結(jié)果都是一個(gè)數(shù)組(X+{10,5}會(huì)得到一個(gè)數(shù)組而不是一個(gè)數(shù)),這就成了嵌套數(shù)組。因?yàn)?span>Excel函數(shù)不支持嵌套數(shù)組,所以結(jié)果是#CALC!錯(cuò)誤。

 

3.MAP有何意義?

到這里,想必大家對(duì)MAP的用法有了清楚的認(rèn)識(shí),同時(shí)會(huì)浮現(xiàn)一個(gè)疑惑:MAP有用嗎?

每個(gè)數(shù)據(jù)加10,直接數(shù)組運(yùn)算更簡(jiǎn)便:

 

表格
描述已自動(dòng)生成

 

每個(gè)數(shù)據(jù)的平方,同樣數(shù)組運(yùn)算很簡(jiǎn)便:

 

表格
描述已自動(dòng)生成

 

求累計(jì)和,也有簡(jiǎn)短公式=SUM($B$23:B23)

 

表格
描述已自動(dòng)生成

 

甚至MAP函數(shù)不支持的嵌套數(shù)組,也可以直接運(yùn)算,=B43:B48+{10,5}

 

表格
描述已自動(dòng)生成

 

諸如以上,用MAP函數(shù),不但公式長(zhǎng),還有限制條件,為何還需要MAP函數(shù)呢?

1)有很多函數(shù)是聚合類的,只輸出單個(gè)值而無(wú)法得到數(shù)組,如SUM、MAX、COUNT、AND等;對(duì)這類函數(shù),如果要輸出數(shù)組,就需要MAP;

2MAP函數(shù)可以只寫(xiě)一個(gè)公式就完成整列數(shù)據(jù)處理,而不再需要公式的下拉填充;

3)當(dāng)需要原數(shù)組各自用同一算式計(jì)算后再分別代入另一個(gè)算式中計(jì)算時(shí),用MAP就不用建立輔助列。

 

譬如,求下方各行數(shù)據(jù)的最大值。使用MAX函數(shù)公式得到B53:C53的最大值,然后向下填充得到其他行的最大值。

 

表格
描述已自動(dòng)生成

 

由于MAX是聚合類函數(shù),只輸出一個(gè)最大值,所以我們不可能通過(guò)在MAX參數(shù)中添加數(shù)組來(lái)得到各行的最大值,如下方兩個(gè)公式都不行:

=MAX(B53:C53,B54:C54,B55:C55,B56:C56,B57:C57)

=MAX(B53:B57,C53:C57)

 

要想一個(gè)公式就得到所有行的最大值,只能用MAP函數(shù),=MAP(B53:B57,C53:C57,LAMBDA(X,Y,MAX(X,Y)))

 

表格
描述已自動(dòng)生成

 

4.應(yīng)用例舉

1)替換字符

小窩曾分享下拉填充REDUCE函數(shù)公式進(jìn)行多字符替換?,F(xiàn)在與MAP配合,可以一個(gè)公式完成所有替換:

=MAP(B89:B93,LAMBDA(a,REDUCE(a,F89:F93,LAMBDA(x,y,SUBSTITUTE(x,y,OFFSET(y,0,1))))))

 

表格
描述已自動(dòng)生成

 

2)匯總名單

如下,按班級(jí)匯總名單。

 

表格
描述已自動(dòng)生成

 

現(xiàn)在匯總表標(biāo)題和班級(jí)都有了。用傳統(tǒng)公式的話,可以=TEXTJOIN("",1,FILTER($C$98:$C$105,$B$98:$B$105=F98))并向下填充:

 

表格
描述已自動(dòng)生成

 

不填充,一個(gè)公式=MAP(F98:F99,LAMBDA(x,TEXTJOIN("、",1,FILTER(C98:C105,B98:B105=x))))

 

表格
描述已自動(dòng)生成

 

 

本文配套的練習(xí)課件請(qǐng)?zhí)砑涌头⑿?span>buluowojiaoyu索取。

Excel高手,快速提升工作效率,部落窩教育Excel精品好課任你選擇!

掃下方二維碼關(guān)注公眾號(hào),可隨時(shí)隨地學(xué)習(xí)Excel

IMG_256

相關(guān)推薦:

LAMBDA遞歸運(yùn)算

坐字法查找合并單元格

REDUCE函數(shù)用法

連續(xù)數(shù)統(tǒng)計(jì)就用FREQUENCY

版權(quán)申明:

本文作者小窩;部落窩教育享有稿件專有使用權(quán)。若需轉(zhuǎn)載請(qǐng)聯(lián)系部落窩教育。