MAP:地圖,繪圖,映射 截止今日24.4.23 MAP函數(shù)僅能在office365中使用,wps預(yù)計(jì)在6月更新中可用! 很多場(chǎng)合中用映射來解釋函數(shù)MAP的功能,但我更愿意用“挨個(gè)執(zhí)行”來解釋它,正式一點(diǎn)可以說成遍歷,對(duì)應(yīng)VBA代碼中就是循環(huán) =MAP(數(shù)組1,數(shù)組2或LAMBDA,數(shù)組2或LAMBDA,數(shù)組2或LAMBDA……) MAP啟用的最后一個(gè)參數(shù)必定是LAMBDA表達(dá)式,在此之前都是數(shù)組。例如啟用了4個(gè)參數(shù),第4個(gè)是LAMBDA表達(dá)式,第1到第3個(gè)是數(shù)組。 先用一個(gè)簡(jiǎn)單的案例說明MAP“挨個(gè)執(zhí)行”的特性。 給每一個(gè)銷量數(shù)據(jù)加上5,輸入簡(jiǎn)單的數(shù)組公式即可實(shí)現(xiàn): =C2:C12+5 改用MAP: =MAP(C2:C12,LAMBDA(x,x+5)) 兩個(gè)公式結(jié)果完全一致,計(jì)算過程則大相徑庭。 第一個(gè)公式各數(shù)組中的元素每個(gè)都加上5,一次性完成。 第二公式中MAP的第一參數(shù)是一個(gè)數(shù)據(jù)區(qū)域,它被傳遞給LAMBDA定義的參數(shù)x,此時(shí) X=C2:C12 LAMBDA表達(dá)式x+5其實(shí)就等同于C2:C12+5,但這個(gè)計(jì)算并非一蹴而就,而是包含了11次計(jì)算: 第一次:C2+5 第二次:C3+5 第三次:C4+5 …… 即對(duì)區(qū)域中的單元格挨個(gè)執(zhí)行加5的操作,最后又打包到一個(gè)數(shù)組中作為結(jié)果。 累加求和 再用一個(gè)更加直觀的案例來體現(xiàn)“挨個(gè)執(zhí)行”。 =MAP(C2:C12,LAMBDA(x,SUM(C1:x))) 公式中唯一的參數(shù)x等同于C2:C12,那么SUM(C1:x)等同于SUM(C1:C12). 同樣,SUM也是計(jì)算了11次,每次計(jì)算中C1是固定的,而x中的元素則是挨個(gè)執(zhí)行: 第一次:SUM(C1:C2) 第二次:SUM(C1:C3) 第三次:SUM(C1:C4) …… 查找第一個(gè)達(dá)成銷量目標(biāo)的人 LAMBDA系列函數(shù)更多用于創(chuàng)建數(shù)組支持較為復(fù)雜的運(yùn)算,再用一個(gè)案例來說明。 要查找數(shù)據(jù)中第一個(gè)銷量超過300的姓名。 先用MAP結(jié)合SUMIF對(duì)每個(gè)人的銷量累加求和: =MAP(B2:B12,C2:C12,LAMBDA(x,y,SUMIF(B1:x,x,C1:y))) 在此基礎(chǔ)上用XLOOKUP查找第一個(gè)超過300的姓名: =XLOOKUP(TRUE,MAP(B2:B12,C2:C12,LAMBDA(x,y,SUMIF(B1:x,x,C1:y)))>300,B2:B12) |
|