新函數(shù)MAP來(lái)了,Excel進(jìn)入函數(shù)式編程
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
導(dǎo)讀 學(xué)習(xí)MAP函數(shù),需了解數(shù)組。MAP將數(shù)組值通過(guò)LAMBDA計(jì)算,返回相同結(jié)果數(shù)組??蓡坞p參數(shù),用于計(jì)算、累加求和、合并同類(lèi)項(xiàng)等。編程式函數(shù)提高工作效率。 這一節(jié)我們來(lái)了解下MAP函數(shù)的使用方法,它是LAMBDA函數(shù)的輔助函數(shù),所謂的輔助函數(shù)就意味,這個(gè)函數(shù)必須配合LAMBDA才能使用
一、了解數(shù)組概念
要學(xué)習(xí)LAMBDA的輔助函數(shù),必須要了解數(shù)組這個(gè)概念,因?yàn)長(zhǎng)AMBDA的輔助函數(shù)大多都是數(shù)字,結(jié)果會(huì)自動(dòng)生成無(wú)需進(jìn)行函數(shù)填充。
數(shù)組簡(jiǎn)單來(lái)說(shuō)就是由一串?dāng)?shù)字組成的數(shù)據(jù),數(shù)組中的數(shù)字是一個(gè)整體,不可單獨(dú)刪除,關(guān)于數(shù)組我們需要明白他們的計(jì)算規(guī)則
數(shù)組與單個(gè)數(shù)字發(fā)生運(yùn)算,是數(shù)組中的所有數(shù)字與這個(gè)數(shù)字逐個(gè)計(jì)算形成一個(gè)新數(shù)組
數(shù)組與數(shù)組發(fā)生計(jì)算,是數(shù)組中位置對(duì)應(yīng)的數(shù)字計(jì)算,然后形成一個(gè)新的數(shù)組
數(shù)組之前有詳細(xì)講到過(guò),在這里就不再贅述了,不明的大家可以搜下之前發(fā)的文章
![]() 二、MAP函數(shù)
MAP: 將數(shù)組中的每個(gè)值通過(guò)LAMBDA進(jìn)行計(jì)算,得到與原數(shù)組相同的結(jié)果
語(yǔ)法:=MAP (array1, lambda_or_array<#>)
參數(shù)1:要映射的數(shù)組。
參數(shù)2:關(guān)于lambda的計(jì)算式
我們可以把這個(gè)函數(shù)簡(jiǎn)單理解為映射,就好比當(dāng)?shù)谝粎?shù)代入了4個(gè)數(shù)字,這4個(gè)數(shù)字會(huì)經(jīng)過(guò)lambda的計(jì)算,再返回4個(gè)對(duì)應(yīng)的結(jié)果,結(jié)果的位置跟個(gè)數(shù)與代入數(shù)字的位置與個(gè)數(shù)相互對(duì)應(yīng)
![]() 三、單參數(shù)案例
公式:=MAP(A2:A6,LAMBDA(x,PI()*x^2))
參數(shù)1:A2:A6
參數(shù)2:LAMBDA(x,PI()*x^2)
這個(gè)函數(shù)的作用是計(jì)算圓的面積,在這里X就表示A2:A6這個(gè)區(qū)域,MAP會(huì)將這個(gè)區(qū)域的所有數(shù)據(jù)逐個(gè)代入LAMBDA返回對(duì)應(yīng)的結(jié)果
![]() 四、雙參數(shù)案例
公式:=MAP(A3:A9,B3:B9,LAMBDA(x,y,x+y))
這個(gè)函數(shù)的作用是讓2個(gè)區(qū)域的數(shù)組相加,這個(gè)案例的關(guān)鍵是是要告訴大家,MAP是可以設(shè)置多個(gè)數(shù)據(jù)區(qū)域的,如果你在MAP設(shè)置了多個(gè)數(shù)據(jù)區(qū)域,就必須要在LAMBDA中定義對(duì)應(yīng)的名稱(chēng)。
在這里X就A3:A9。Y就表示B3:B9 ,表達(dá)式可以根據(jù)X與Y來(lái)隨意書(shū)寫(xiě)
![]() 五、累加求和
公式:=MAP(C2:C8,LAMBDA(X,SUM(C2:X)))
這個(gè)公式是為了告訴大家,MAP它引用的是單元格為位置,是將單元格的位置代入到函數(shù)中進(jìn)行計(jì)算的,而不是單元格中的值
如下圖,將C2:C8區(qū)域代入到MAP函數(shù)后,區(qū)域就會(huì)變?yōu)镃2:C2,C2:C3, C2:C4單位依次增加從而達(dá)到累加求和的效果
![]() 六、合并同類(lèi)項(xiàng)
公式:=VSTACK({"部門(mén)","姓名"},HSTACK(UNIQUE(C3:C13),MAP(UNIQUE(C3:C13),LAMBDA(x,TEXTJOIN("、",TRUE,FILTER(B3:B13,C3:C13=x))))))
使用這個(gè)公式,我們可以補(bǔ)借助輔助列,一步得到合并同類(lèi)項(xiàng)的結(jié)果,公式雖然看起來(lái)挺復(fù)雜,但是理解起來(lái)并不難
1. 首先利用FILTER來(lái)篩選出班級(jí)對(duì)應(yīng)的雖有姓名
2. 利用TEXTJOIN函數(shù)將班級(jí)所有的姓名都合并在一個(gè)單元格中
3. 使用MAP將部門(mén)逐個(gè)代入TEXTJOIN函數(shù),
4. 利用HSTACK將部門(mén)添加到結(jié)果的左側(cè)
5. 使用VSTACK將表頭添加在結(jié)果上方
![]() 以上就是MAP函數(shù)函數(shù)的使用方法,以后會(huì)跟大家介紹更多的編程式函數(shù),大家可以?xún)鍪志毩?xí)一下,因?yàn)榫幊淌胶瘮?shù)確實(shí)有點(diǎn)費(fèi)腦子。
該文章在 2025/2/18 10:21:41 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |