【Excel】未來5年你必須要掌握的函數之8:REDUCE函數
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
微軟為什么將這個函數命名為REDUCE函數,這個問題讓我著實有些困惑。然而,既然微軟做出了這樣的命名選擇,必定有其深思熟慮的原因。 在前面我們提到的一些函數中,比如MAP函數、FILTER函數、SORT函數等,它們的名稱往往能夠直觀地反映出函數的作用。但是,REDUCE函數卻并沒有這種“望文生義”的特點,或者說并不那么直接明了。 REDUCE這個單詞本身有“減少、縮小”的意義,而REDUCE函數可以遍歷數組中的每一個值,對每一個值進行指定的運算,最終將數組減少為一個累計值。或許正是基于這個原因,微軟將該函數命名為REDUCE。這只是我個人的猜測,但這種解釋似乎也能夠合理說明微軟為什么選擇這個名稱。 1、基本語法 =REDUCE([initial_value],array,lambda(accumulator,value,calculation)) initial_value是可選參數,它是迭代計算的起始值。這個值的類型可以是數值、文本或其他數據類型,具體取決于后續的計算需求。例如,如果要對一個數字數組進行求和,initial_value可以是 0;如果要連接字符串數組,initial_value可以是一個空字符串。 array是必需參數,它是要進行迭代計算的數組,可以是單元格區域(如A1:A10)或者常量數組(如{1,2,3})。 lambda_expression是必需參數,它是一個Lambda函數,用于定義每次迭代的操作。其中value對應array中的每一個值。 2、基本用法 1)累計求和 計算10+20+…+100的和: =REDUCE(0,D2:D11,LAMBDA(x,y,x+y)) 我們需要重點理解上面這個公式的運行邏輯: 設定初始值為 0,而參與運算的數組為[D2:D11]單元格區域所涵蓋的值。當運算開始,首次啟動計算步驟,依據既定規則,此刻代表數組中當前元素的變量 “y” 取值為該區域起始單元格 D2 的值,也就是 10,而累積值變量 “x” 初始即為設定好的 0,二者相加,按照 “x + y”的運算邏輯,得出的結果自然是 10。 緊接著步入第二次運算環節,此時累積值“x”已然更新為首次運算所得的10,而“y”則對應到數組中的下一個元素,即單元格 D3 的值 20,再度執行 “x + y” 運算,10 與 20 相加,其結果便是 30。 以此類推,直到第十次運算,此時的累積值 “x” 歷經前面九次的逐步累積與更新,已然達到 450,而 “y” 所對應的則是數組中 D11 單元格的值 100,再度進行“x + y” 的運算操作,450 與 100 相加,最終得出的550 便是這場運算歷程的最終結果,至此運算結束。 其實這里的x就是累加器。 2)條件求和 計算所有大于60的和: =REDUCE(0,D2:D11,LAMBDA(x,y,IF(y>60,x+y,x))) 3)條件計數 計算所有大于60的個數: =REDUCE(0,D2:D11,LAMBDA(x,y,IF(y>60,x+1,x))) 4)字符串連接 將所有的小寫字母連接在一起: =REDUCE("",D3:D16,LAMBDA(x,y,IF(AND(CODE(y)<=122,CODE(y)>=97),x&y,x))) 該文章在 2024/11/26 9:53:59 編輯過 |
關鍵字查詢
相關文章
正在查詢... |