BYCOL 関数は、配列の各「列」に対して処理を行う Excel の 動的配列関数です。各列ごとに指定された計算(ラムダ関数)を適用できます。
❗ 使用可能バージョン:Excel 365 / Excel 2021 以降
■ 書式:
BYCOL(array, lambda(column))
■ 引数:
| 引数 | 説明 |
|---|---|
| array | 対象となる配列(例:A1:D5 など) |
| lambda(column) | 各列に適用する関数(LAMBDA関数)※ column は各列の1列分の配列として渡される |
■ 使用例:
① 各列の合計を求める
=BYCOL(A1:D5, LAMBDA(col, SUM(col)))
→ A1:D5 の各列ごとの合計を横方向に出力
② 各列の最大値を求める
=BYCOL(A1:D5, LAMBDA(col, MAX(col)))
■ 出力の特徴:
- 結果は横方向に展開されます(1行の配列)
- 列ごとの計算が簡潔に書けます(従来は
TRANSPOSE,MMULT,INDEXなどの複雑な式が必要でした)
■ BYCOL vs BYROW:
| 関数 | 単位 | 出力方向 | 用途 |
|---|---|---|---|
BYCOL | 各「列」 | 横方向 | 各列の合計や平均など |
BYROW | 各「行」 | 縦方向 | 各行の合計や条件判定など |
■ 応用例:
条件付きで各列の平均を出す(0以上の値のみ)
=BYCOL(A1:D5, LAMBDA(col, AVERAGE(IF(col>=0, col))))
※ Ctrl + Shift + Enter は不要(動的配列対応)
他の関数(BYROW, MAP, SCAN, REDUCE など)との組み合わせによって、より高度な処理も可能です。