|
函數(shù)+VBA 函數(shù)BYROW=By row,字面意思按行,函數(shù)的功能就是按行執(zhí)行(LAMBDA); =BYROW (數(shù)組, lambda()) 函數(shù)BYCOL=By Column,字面意思按列,函數(shù)功能就是按列執(zhí)行(LAMBDA)。 =BYCOL (數(shù)組, lambda()) 注意,它們的第二參數(shù)一定是一個LAMBDA函數(shù)應(yīng)用表達(dá)式。 這是一個平平無奇的求和公式,對A1:E6求和: =SUM(A1:E6)
用LAMBDA改進(jìn): =LAMBDA(x,SUM(x))(A1:E6) LAMBDA定義了一個參數(shù)x,定義了一個計算,對x求和,最后將A1:E6傳遞給x,最終效果就是對A1:E6求和
上述公式的外面包一個BYROW: =BYROW(A1:E6,LAMBDA(x,SUM(x))) 第一參數(shù)A1:E6是要參與運算的數(shù)組,第二參數(shù)是LAMBDA表達(dá)式。 LAMBDA的參數(shù)和計算定義不變,A1:E6被傳遞給x作為SUM的求和對象,不同的是BYROW會讓LAMBDA按行執(zhí)行求和,每行都會產(chǎn)生一個求和結(jié)果,最終形成一個數(shù)組返回。
改為BYCOL則按列執(zhí)行求和: =BYCOL(A1:E6,LAMBDA(x,SUM(x)))
案例:提取平均數(shù)據(jù)前三名 =TAKE(SORTBY(A2:D8,BYROW(B2:D8,LAMBDA(x,AVERAGE(x))),-1),3) 其中BYROW+LAMBDA+AVERAGE組合部分實現(xiàn)按行統(tǒng)計平均值,返回一個數(shù)組作為SORTBY排序的依據(jù),排序后用TAKE提取前三。
案例:合并文本 =TEXTJOIN(CHAR(10),1,BYROW(A2:C8,LAMBDA(x,TEXTJOIN(",",1,x))))BYROW+LAMBDA+TEXTJOIN部分實現(xiàn)按行合并文本,外層TEXTJOIN在此基礎(chǔ)上再次合并,以換行符間隔。
|
|
|
來自: 昵稱72339616 > 《待分類》