在 Excel 的工作表中,當你擁有一個包含數據清單的表格時(如下圖所示),你可能會想要在每列中計算小計,而且只希望使用一個儲存格中的公式就能完成這項任務。這個挑戰可以透過動態陣列公式來解決,其中包括了一些強大的函數,如 BYROW 函數和 LAMBDA 函數。

BYROW 函數允許你對指定的數據範圍進行逐列運算,將每一列的值傳入自定義的 LAMBDA 函數中進行計算。這意味著你可以在一個儲存格中輸入一個 BYROW 函數,並在其中使用 LAMBDA 函數來計算每列的小計。這種方法極大地簡化了計算過程,並且能夠在單個儲存格中完成整個計算過程。

舉例來說,假設你想要計算每列的總和。你可以使用 BYROW 函數來遍歷每列的值,然後在 LAMBDA 函數中使用 SUM 函數來計算總和。這樣一來,你只需要在一個儲存格中輸入 BYROW 函數,就能夠自動計算每列的總和,無需手動處理每一列。

這種動態陣列公式的使用方式不僅提高了計算效率,還讓複雜的任務變得更加簡單和直觀。通過 BYROW 函數和 LAMBDA 函數,你可以在 Excel 中輕鬆實現一個儲存格計算多列小計的功能,這將大大提升你的資料分析和處理效率。

Excel-使用BYROW和LAMBDA,只要一個儲存格公式即可進行多列的運算

定義儲存格名稱,資料:儲存格A3:H12。

1. 計算每列的小計

儲存格I3:=BYROW(資料,LAMBDA(資料,SUM(資料)))

利用 LAMBDA 函數來定義陣列要做「和(SUM)」的計算,再以 BYROW 函數呈現每一列。

2. 計算每列的最大值

儲存格J3:=BYROW(資料,LAMBDA(資料,MAX(資料)))

利用 LAMBDA 函數來定義陣列要找出「最大值(MAX)」,再以 BYROW 函數呈現每一列。

3. 計算每列的偶數個數

儲存格K3:=BYROW(資料,LAMBDA(資料,SUM((MOD(資料,2)=0)*1)))

利用 LAMBDA 函數來定義陣列要找偶數個數,再以 BYROW 函數呈現每一列。

(1) (MOD(資料,2)=0)*1

將資料除以2的餘數,判斷是否為 0,若為 TRUE,則為偶數,反之為奇數。

在此的「*1」運算,會將 TRUE/FALSE 陣列轉換為 1/0 陣列。

(2) SUM((MOD(資料,2)=0)*1)

將第(1)式的傳回值予以加總,即為偶數個數。

 

如果要在以下的清單中,計算每列有幾個在前10名中,則公式:

儲存格I3:=BYROW(IF(data>=LARGE(data,10),1,0),LAMBDA(data,SUM(data)))

其中 data 是儲存格A3:H12。

公式也可以改成這樣:

儲存格I3:=BYROW((data>=LARGE(data,10))*1,LAMBDA(data,SUM(data)))

Excel-使用BYROW和LAMBDA,只要一個儲存格公式即可進行多列的運算

【參考資料】

 BYROW 函數參考微軟提供的說明:BYROW 函數
 BYCOL 函數參考微軟提供的說明:BYCOL 函數

學不完.教不停.用不盡文章列表

arrow
arrow
    文章標籤
    Excel BYROW LAMBDA
    全站熱搜

    vincent 發表在 痞客邦 留言(0) 人氣()