Map ?地圖?嘿嘿,它是office365和WPS新增的一個函式,蘭色說了是超級函式,因為它解決了一個用舊函式很難解決的超大難題,陣列的遍歷難題。
聽起來有點抽象?來一個小例子。
【例】如下圖所示,想用EMONTH獲取B列每一個日期的上月最後一天,結果是錯的。
這個問題就可以用MAP函式的遍歷來完成
=MAP(B3:B13,LAMBDA( 日期 ,EOMONTH(日期,-1)))
註: 日期 是自訂的參數,換成X什麽的也可以,它代表MAP第一個參數(如本例 B3:B13 ) 的每一個值。
還不理解?再看一個例子
把當B列值小於60就返回不及格,否則返回原值
=MAP(B2:B6,LAMBDA(X,IF(X<60,"不及格",X)))
註:MAP會對區域中每一個值透過LAMBDA進行判斷並返回結果
那....學這個函式有什麽用? 看一個昨天蘭色直播時一個同學提問:
如下圖所示,要求對左則表按每月25號為記賬日進行匯總,結果如右側表格所示。
新版本即將更新一個超強大的groupby函式,用它可以對表格進行分類匯總,現在的難題是要把A列的日期都轉換成兩個日期:上個月25號和本月25號(下面公式已修改,見評論區置頂)
=HSTACK( MAP(A2:A22,LAMBDA(X,EOMONTH(X,-2)+25)) , MAP(A2:A22,LAMBDA(X,EOMONTH(X,-1)+25)) )
註:這裏就用MAP遍歷A列日期,並生成上月和本月25日,然後再用HSTACK合並成一個兩列的陣列。
然後把它作為Groupby函式的第1個參數,問題解決。
=GROUPBY( HSTACK( MAP(A2:A22,LAMBDA(X,EOMONTH(X,-2)+25)) , MAP(A2:A22,LAMBDA(X,EOMONTH(X,-1)+25)) ) ,D2:D22, SUM,0)
蘭色說 :新函式的組合套用估計讓很多人看起來有點吃力,畢竟現在相關教程幾乎空白,需要一個熟悉的過程。
這個例子蘭色會在今晚和周日視訊號直播時講解,也會更新到蘭色函式公式大全教程中。 想跟蘭色學習新函式的同學可以購買四合一大全套課程( 包括 Excel表格92個函式用法 、 119個使用技巧 、 透視表從入門到精通50集 、 圖表從入門到精通185集) 。詳情點選下方連結