Excel BYROW 函數:按列逐列套用 LAMBDA 運算 完整指南
Excel BYROW 函數:按列逐列套用 LAMBDA 運算 完整指南
📅 發布日期:2026-09-07
🏷️ 分類:動態陣列與高階邏輯 Excel 工作表函數
💡 函數速查卡
| 函數名稱 | BYROW |
|---|---|
| 所屬類別 | 邏輯與動態陣列函數 (Logical / Dynamic Array) |
| 傳回類型 | 單欄縱向動態陣列 (Single Column Array) |
| 常用頻率 | ★★★★☆ |
在 Excel 動態陣列(Dynamic Arrays)的新功能中,BYROW 函數扮演著極為關鍵的角色。它能將指定的二維陣列或儲存格範圍**依「列(Row)」逐列拆解**,並對每一列獨立套用 LAMBDA 自訂邏輯,最後自動向下溢出(Spill)形成單欄的縱向結果。這徹底解決了過去需要向下複製下拉公式的麻煩,是橫向跨欄資料統計與多欄條件稽核的必學函數。
一、 基本語法與參數
BYROW 函數的標準語法結構如下:
=BYROW(array, lambda)
| 參數 | 說明 | 預設值 / 必填 |
|---|---|---|
array |
要依列拆分處理的**二維陣列或儲存格範圍**(例如 A2:E100)。 | 必填 |
lambda |
一個接收**單一參數**(代表每一列的橫向向量)的 LAMBDA 函數,並針對該列傳回單一彙整結果。 |
必填 |
二、 核心功能說明
BYROW 的運算流程是將傳入的資料區域水平劃分成一列列的向量(Row vector),並依次餵給 LAMBDA(row, ...) 進行運算。當每一列產生對應的純量結果後,BYROW 會將所有列的結果組合成單欄的垂直陣列輸出。
在自動化報表與高階資料統計中,常見的使用情境包括:
- 一次性計算每一列的總和(SUM)、平均(AVERAGE)或最大值(MAX)。
- 進行橫向多欄的邏輯比對(如:判斷該列是否有任一欄符合特定規則或未填寫)。
- 搭配
FILTER函數,根據「整列的綜合條件計算結果」來過濾動態資料表。
三、 實用公式範例
範例 1:一次性計算全表每一列的總和 (SUM)
假設 B2:E10 是包含 9 筆資料、每筆有 4 個季度的業績表,只需在 F2 輸入單一公式:
' 自動針對第 2 列至第 10 列分別計算 SUM,並往下溢出 9 個結果
=BYROW(B2:E10, LAMBDA(r, SUM(r)))
範例 2:橫向稽核,檢查每一列是否有任何空白儲存格
檢查 A2:D50 的表格中,每一列是否有漏填(空白)的情形,若有則回傳 "需補件":
' 運用 COUNTA 計算非空個數,若小於欄數則代表有漏填
=BYROW(A2:D50, LAMBDA(row_data, IF(COUNTA(row_data) < 4, "需補件", "完整")))
範例 3:配合 FILTER 篩選出「總分大於 250」的資料行
結合 FILTER 與 BYROW,直接對各科成績總和進行即時動態過濾:
' A2:A20 為姓名,B2:D20 為三科成績;篩選出總分大於 250 分的學生姓名與成績
=FILTER(A2:D20, BYROW(B2:D20, LAMBDA(scores, SUM(scores))) > 250)
四、 常見陷阱與注意事項
⚠️ 注意事項 1:LAMBDA 必須傳回「單一純量值」
傳入
傳入
BYROW 的 LAMBDA 運算式,針對每一列的輸出必須是一個**單一純量**(如 SUM、AVERAGE 等結果)。若 LAMBDA 的計算結果傳回的是一個陣列(例如 r * 2 仍為多欄結果),Excel 將會丟出 #CALC! 錯誤。
⚠️ 注意事項 2:下方儲存格受阻導致 #SPILL! 錯誤
BYROW 計算出的結果會向下垂直延伸溢出。如果下方預計顯示結果的區域存在其他文字、數值或格式阻擋,將會出現 #SPILL! 錯誤,只要清理被阻檔的區域即可解決。
五、 相關函數推薦
BYCOL:與 BYROW 相對應,按「欄(Column)」逐欄套用 LAMBDA 運算。LAMBDA:自訂邏輯運算的核心函數,為 BYROW 不可或缺的參數。MAP:針對陣列中的每一個儲存格元素進行一對一逐項映射計算。
六、 官方文件連結
想進一步瞭解微軟官方說明與更多邊界情境,可參考:
留言
張貼留言