Excel 関数 BYROW は、範囲または配列の各行に対して指定の関数(ラムダ式)を適用する動的配列関数です。
主に 1行ごとの集計や処理を簡潔に書くために使います。
🔹 構文
=BYROW(array, lambda_function)
- array:処理対象となる範囲または配列(例:A1:D5)
- lambda_function:各行に適用する関数(LAMBDA)
🔸 使い方のイメージ
=BYROW(A1:D5, LAMBDA(row, SUM(row)))
この式は、A1:D5 の各行に対して SUM を適用し、行ごとの合計を返します。
🧪 使用例
✅ 例1:各行の合計を求める
=BYROW(A1:D5, LAMBDA(r, SUM(r)))
- 各行ごとの合計値が縦に出力されます。
✅ 例2:各行の最大値を求める
=BYROW(A1:D5, LAMBDA(r, MAX(r)))
✅ 例3:条件を満たすか判定(合計が100以上か)
=BYROW(A1:D5, LAMBDA(r, IF(SUM(r)>=100, "OK", "NG")))
🔸 主な用途
| 用途例 | 関数例 |
|---|---|
| 行単位で集計・平均・統計を出す | SUM, AVERAGE, MAX, MIN などと組み合わせる |
| 行単位のデータチェック(エラー/条件) | IF, ISERROR, COUNTIF などと組み合わせる |
| テーブル処理の簡略化 | BYROW + LAMBDA で Power Query 的な処理が可能 |
🔄 関連関数
| 関数 | 説明 |
|---|---|
BYCOL | 各「列」に対して LAMBDA を適用する関数 |
MAP | 複数の配列にまたがる要素ごとの処理 |
SCAN | 累積処理に使える動的配列関数 |
REDUCE | 複数の値を1つにまとめる累積処理関数 |
✅ 応用例:行ごとの平均が80未満かどうか
=BYROW(A2:D10, LAMBDA(r, IF(AVERAGE(r)<80, "再試験", "合格")))
BYROW は LAMBDA関数と組み合わせることで、行単位の処理を強力に簡潔化できます。