SCAN ,Excel365新增的函式( WPS也已增加 ),一個超冷門的函式。但它卻是一個內建掃描功能的超級函式。
語法:
註:這個函式會配合lambda函式遍歷陣列中的每個值,透過判斷等運算把處理後的每一次結果儲備在初始值中。
來個簡單的例子
A列日期,B列是銷量,現要求在C列計算銷量大於5的累計銷量,可以用Countif函式統計:
=COUNTIF(B$2:B2,">5")
如果用Scan函式,公式則為:
=SCAN( 0 ,B2:B16,LAMBDA( X , Y ,IF( Y >5, X +1, X )))
註: 0 是初始值, X 是每一步初始值變化後的值, Y 是區域(B2:B16)中的每個值。 F( Y >5, X +1, X ) 根據Y值判斷,改變X值每一個步的值。
估計很多同學迷糊了,有簡單的Countif公式,還要Scan這麽復雜的公式?
當然有用,它生成的是一個記憶體陣列。哇,越來越暈了?好吧,還是看一個範例
估計很多人都被
合並單元格
的問題困擾過,如下面的含合並單元格的多條件尋找,因為B列是合並單元格,什麽xlookup,Lookup都無法尋找出結果。
而SCAN則可以完成合並單元格的批次填充值,
=SCAN(,B$2:B$19,LAMBDA(X,Y,IF(Y="",X,Y)))
註:初始值為空白,利用Y對B列值進行逐個判斷,如果為空則該次結果還是上次的初始值X,否則為Y值。
有了這樣的結果,就可以利用Xlookup進行多條件尋找了。
=XLOOKUP(K2&L2, SCAN(,B$2:B$19,LAMBDA(X,Y,IF(Y="",X,Y))) &C$2:C$19,E$2:E$19)
蘭色說 :除了SCAN,新增函式中還有MAP、 REDUCE有遍歷功能,這以前只有VBA中才可以實作的效果,可以讓公式變得無法強大。
蘭色根據多年經驗,錄制了一全套適合新手和初中級階段使用者學習的Excel教程。包括 Excel表格88個函式用法( 即將更新幾十個新函式 )、119個使用技巧、透視表從入門到精通50集、圖表從入門到精通186集 。( 綠卡會員 有效期內 免費 )詳情點選下方連結