BYROW 函數是 Excel 中用來「逐列套用公式」的動態陣列工具。它能針對每一列資料執行指定的運算邏輯,並回傳一組結果,適合用在列向統計、資料彙整、自動化報表等場景。本文將說明 BYROW 函數的語法、應用範例、注意事項與進階技巧,幫助你在資料處理與公式設計中更靈活地操作列向資料。
一、BYROW 函數語法與用途:逐列運算的動態陣列工具
語法:
=BYROW(陣列, Lambda_函數)
- 陣列:要處理的資料範圍(例如 A1:D10)
- Lambda_函數:自訂的運算邏輯,通常使用
LAMBDA(x, 運算式)
格式 - BYROW 會針對每一列資料執行一次 Lambda 函數,回傳一組結果(每列一個值)。
二、BYROW 函數範例:多場景應用教學
範例一:計算每列的總和
=BYROW(A1:D5, LAMBDA(x, SUM(x)))回傳 A 到 D 欄每一列的加總結果。
範例二:計算每列的平均值
=BYROW(A1:D5, LAMBDA(x, AVERAGE(x)))
回傳每列的平均數。
範例三:找出每列的最大值
=BYROW(A1:D5, LAMBDA(x, MAX(x)))
回傳每列的最大值。
範例四:判斷每列是否全為數值
=BYROW(A1:D5, LAMBDA(x, AND(ISNUMBER(x))))
回傳 TRUE 或 FALSE,表示每列是否皆為數值。
範例五:建立列向標示(例如是否有空值)
=BYROW(A1:D5, LAMBDA(x, IF(COUNTA(x)<COLUMNS(x), "有空值", "完整")))
回傳每列是否填寫完整。
三、BYROW 函數注意事項與錯誤排除
- BYROW 需搭配
LAMBDA
函數使用,Excel 365 才支援 - Lambda 函數的參數名稱可自訂,但需一致使用
- 若陣列中包含錯誤值,可能導致整體公式失敗
- BYROW 回傳的是動態陣列,若需轉為靜態請使用
TEXTJOIN
或INDEX
- 若需逐欄運算,請使用
BYCOL
函數
四、常見問題解答(FAQ)
Q1:BYROW 和 BYCOL 有什麼差別? BYROW 是逐列運算,BYCOL 是逐欄運算,兩者搭配可進行矩陣處理。
Q2:BYROW 可以處理文字嗎?
可以,只要 Lambda 函數支援文字運算,例如 TEXTJOIN
、COUNTIF
。
Q3:BYROW 可以搭配條件判斷嗎? 可以,例如:
=BYROW(A1:D5, LAMBDA(x, IF(SUM(x)>100, "高", "低")))
五、進階技巧與延伸應用
BYROW 是動態陣列運算的進階工具,進一步你可以學習:
- BYCOL 函數:逐欄運算,適合縱向分析
- SCAN / REDUCE 函數:累加與彙整運算
- MAP 函數:逐項運算,適合細部處理
- LET 函數:提升公式可讀性與效能
這些技巧適合用在報表設計、資料彙整、動態分析等進階場景。
六、結語與延伸閱讀推薦
BYROW 函數是 Excel 中最靈活的逐列運算工具之一,適合用在列向統計、資料彙整、報表分析等情境。學會 BYROW 後,你可以進一步探索:
- [BYCOL 函數教學:逐欄運算的動態陣列技巧]
- [MAP 函數教學:逐項處理與格式轉換的進階方法]
- [LET 函數教學:提升公式效能與可讀性的好幫手]