今天我們來學習下REDUCE函數的使用方法,我願意稱之為LAMBDA函數的最強輔助函數,他可以循環調用參數,累加結果,下面我們來學習下它的使用方法。
一、REDUCE
REDUCE:通過將 LAMBDA 應用於每個值,並在累加器中返回總值,將數組減小為累積值。
語法:=REDUCE ([initial_value], array,lambda (x,y,計算表達式) )
第一參數:初始值,第二參數:要循環的數組,第三參數:lambda,可以接受2個參數REDUCE是LAMBDA函數的輔助參數,需要配合LAMBDA,上面的介紹相信很多粉絲都看不明白,下面我們通過實際的案例來具體演示下
二、案例演示
如下圖,我們想要求這4個數字平方的和,就可以考慮使用下面的公式
公式:REDUCE(0,B2:B5,LAMBDA(x,y,y*y+x))
- 參數1:起始值0
- 參數2:B2:B5,需要循環的區域
- 參數3:LAMBDA(x,y,y*y+x)
在這裡LAMBDA表示式中,X就表示起始值,Y就表示需要循環的區域,函數會將B2:B5逐個代入LAMBDA做計算
當代入數字1,x為0,y為1,1乘1加上0結果為1,LAMBDA會將結果1傳回x等待下次計算當代入數字2,x為1,y為2,2乘2加上1結果為5當代入數字3,x為5,y為3,3乘3加上5結果為14當代入數字4,x為14,y為4,4乘4加上16結果為30以上就是函數的計算過,逐個遍歷,將結果累加起來。
三、連接文字
公式:=REDUCE(,B2:B10,LAMBDA(x,y,x&y))
REDUCE函數不僅僅能對數字累加,還能進行文字的連接,如下圖,我們就是將幾個單元格中的數據連接在了單元格中。
以上就是REDUCE函數的基本用法,下面我們來上點難度,看幾個工作中的實際案例。
四、批量替換
公式:=REDUCE(C2,{"袋";"kg";"個"},LAMBDA(x,y,SUBSTITUTE(x,y,"")))*1
在這裡我們是將單位【袋、kg、個】批量替換為了空值,最後再乘以數字1,將文本數字換換位數字格式的數字方便計算。
五、批量指定替換
公式:=REDUCE(C2,F2:F4,LAMBDA(x,y,SUBSTITUTE(x,y,OFFSET(y,,1))))
我們想將中文替換為對應的英文單位,這個公式的邏輯跟案例四是一樣的,關鍵點就是通過OFFSET來做偏移,在這裡它的作用是向右移動一行,這樣的話就能得到替換值來做替換了
六、同類項拆分
公式:=REDUCE(B4:C4,B5:B7,LAMBDA(x,y,VSTACK(x,IFNA(HSTACK(y,TEXTSPLIT(OFFSET(y,,1),,"、")),y))))
這個公式可以將合併同類項的表格,快速的拆分為這個公式比較的複雜,我們來簡單的拆解下:
- 1.我們需要使用TEXTSPLIT函數根據分隔符拆分
- 2.使用HSTACK函數在拆分結果的左側連接上對應的班級
- 3.使用IFNA函數將錯位值替換為對應的班級
- 4.使用 VSTACK來將表頭連接到結果的上面即可
以上就是1行數據的轉換方式,最後再使用REDUCE函數來做循環遍歷即可,不過我們需要注意的是需要將表頭B4:C4作為起始值,這樣才能添加上表頭。
以上就是REDUCE函數的使用方法,大家可以動手試一下,這個函數還是非常強大的,大家可以動手試一下。
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/288267.html