MAP函數(shù)如何使用?有何意義?
?
作者:小窩來源:部落窩教育發(fā)布時(shí)間:2024-03-27 14:20:50點(diǎn)擊:1830
如何使用MAP函數(shù)?MAP函數(shù)有何實(shí)際意義?本篇教程為大家解惑。
今天小窩向大家分享MAP函數(shù)的用法。MAP函數(shù)同樣需要嵌套LAMBDA函數(shù)使用。
1.作用與語法
MAP函數(shù)依次將數(shù)組的每個(gè)值代入LAMBDA函數(shù)中進(jìn)行運(yùn)算并以數(shù)組的形式輸出各自的結(jié)果。MAP在此處不是地圖,而是映射:將數(shù)組各值運(yùn)算后的結(jié)果按其原來位置關(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è)變量。
2.基本用法
1)單個(gè)數(shù)組運(yùn)算
譬如求每個(gè)數(shù)據(jù)的平方,公式=MAP(B13:B18,LAMBDA(x,x^2))
再譬如求數(shù)據(jù)的累加和,公式=MAP(B23:B28,LAMBDA(x,SUM(B23:x)))
說明:
數(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))
說明:
多個(gè)數(shù)組運(yùn)算,各數(shù)組的大小須一致,譬如當(dāng)前A33:A38和B33:B38都是6行1列的數(shù)組。
如果運(yùn)算的數(shù)組大小不一致,缺少項(xiàng)將出現(xiàn)#N/A錯(cuò)誤,譬如=MAP(A33:A38,B33:B37,LAMBDA(x,y,x+y)):
3)LAMBDA運(yùn)算的每次結(jié)果須是單個(gè)值而不是數(shù)組
譬如求下列數(shù)據(jù)分別加10和5的和,公式=MAP(B43:B48,LAMBDA(x,x+{10,5}))得不到正確結(jié)果:
說明:
MAP會輸出由每個(gè)X的結(jié)果組成的數(shù)組,而當(dāng)前每個(gè)X的結(jié)果都是一個(gè)數(shù)組(X+{10,5}會得到一個(gè)數(shù)組而不是一個(gè)數(shù)),這就成了嵌套數(shù)組。因?yàn)?span>Excel函數(shù)不支持嵌套數(shù)組,所以結(jié)果是#CALC!錯(cuò)誤。
3.MAP有何意義?
到這里,想必大家對MAP的用法有了清楚的認(rèn)識,同時(shí)會浮現(xiàn)一個(gè)疑惑:MAP有用嗎?
每個(gè)數(shù)據(jù)加10,直接數(shù)組運(yùn)算更簡便:
每個(gè)數(shù)據(jù)的平方,同樣數(shù)組運(yùn)算很簡便:
求累計(jì)和,也有簡短公式=SUM($B$23:B23):
甚至MAP函數(shù)不支持的嵌套數(shù)組,也可以直接運(yùn)算,=B43:B48+{10,5}:
諸如以上,用MAP函數(shù),不但公式長,還有限制條件,為何還需要MAP函數(shù)呢?
(1)有很多函數(shù)是聚合類的,只輸出單個(gè)值而無法得到數(shù)組,如SUM、MAX、COUNT、AND等;對這類函數(shù),如果要輸出數(shù)組,就需要MAP;
(2)MAP函數(shù)可以只寫一個(gè)公式就完成整列數(shù)據(jù)處理,而不再需要公式的下拉填充;
(3)當(dāng)需要原數(shù)組各自用同一算式計(jì)算后再分別代入另一個(gè)算式中計(jì)算時(shí),用MAP就不用建立輔助列。
譬如,求下方各行數(shù)據(jù)的最大值。使用MAX函數(shù)公式得到B53:C53的最大值,然后向下填充得到其他行的最大值。
由于MAX是聚合類函數(shù),只輸出一個(gè)最大值,所以我們不可能通過在MAX參數(shù)中添加數(shù)組來得到各行的最大值,如下方兩個(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))):
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))))))
2)匯總名單
如下,按班級匯總名單。
現(xiàn)在匯總表標(biāo)題和班級都有了。用傳統(tǒng)公式的話,可以=TEXTJOIN("、",1,FILTER($C$98:$C$105,$B$98:$B$105=F98))并向下填充:
不填充,一個(gè)公式=MAP(F98:F99,LAMBDA(x,TEXTJOIN("、",1,FILTER(C98:C105,B98:B105=x)))):
本文配套的練習(xí)課件請?zhí)砑涌头⑿?span>buluowojiaoyu索取。
做Excel高手,快速提升工作效率,部落窩教育Excel精品好課任你選擇!
掃下方二維碼關(guān)注公眾號,可隨時(shí)隨地學(xué)習(xí)Excel:
相關(guān)推薦:
連續(xù)數(shù)統(tǒng)計(jì)就用FREQUENCY
版權(quán)申明:
本文作者小窩;部落窩教育享有稿件專有使用權(quán)。若需轉(zhuǎn)載請聯(lián)系部落窩教育。
最熱教程
- 像綠皮火車一樣長像珠穆拉瑪峰一樣高的Excel表怎么操作才方便?
- Power Query實(shí)戰(zhàn):按指定次數(shù)遞增數(shù)據(jù)
- 2019年全網(wǎng)最全—excel提取身份證信息合集?。ńㄗh收藏)-下篇
- 明明沒有重復(fù),Excel卻判定數(shù)據(jù)重復(fù),這是怎么回事?
- 文本格式的求和,及求和中最容易出現(xiàn)的問題解疑
- 致命缺陷:不懂一維表!
- 函數(shù)組合思維,你有嗎?
- 學(xué)會這2個(gè)公式,整理考勤數(shù)據(jù)只要一分鐘
- 就算被說是拍馬屁也成,今天你應(yīng)該這樣發(fā)Excel報(bào)表……
- 如何計(jì)算Excel單元格中的算式,四種求和方法請收好!