當前位置: 妍妍網 > 辦公

Map,一個內建遍歷功能的超級新函式!

2024-06-27辦公

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集) 。詳情點選下方連結