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