[Microsoft 365]
Excelの BYROW(バイ・ロウ)関数とBYCOL(バイ・カラム)関数の使い方を紹介します。
Microsoft 365の新関数であるBYROW関数とBYCOL関数は、LAMBDA関数のヘルパー関数です。LAMBDA関数に配列の各行や各列を渡して計算し、その戻り値からなる配列を返します。
書式
LAMBDA関数に配列の各行を渡して計算する
=BYROW(配列, LAMBDA関数)
[配列]の行を1行ずつ[LAMBDA関数]に渡して計算し、その戻り値からなる配列を返します。返される配列のサイズは、[配列]の行数×1列です。
LAMBDA関数に配列の各列を渡して計算する
=BYCOL(配列, LAMBDA関数)
[配列]の列を1列ずつ[LAMBDA関数]に渡して計算し、その戻り値からなる配列を返します。返される配列のサイズは、1行×[配列]の列数です。
■引数
引数 | 説明 |
---|---|
配列 | 配列やセル範囲を指定する。 |
LAMBDA関数 | 戻り値の計算方法を指定するためのLAMBDA関数を指定する。 |
LAMBDA関数の書式は以下のとおりです。LAMBDA関数では引数[変数]を最大253個指定できますが、BYROW関数やBYCOL関数と一緒に使用するときは1つだけ指定します。
=LAMBDA([変数1, 変数2…], 計算式)
LAMBDA関数の使い方は「LAMBDA関数 ● オリジナルの関数を定義する」を参照してください。
以下の「使用例1」「使用例2」では、合計計算を例にBYROW関数やBYCOL関数の使い方を紹介します。実際にはこのような単純な計算にこれらの関数を使うことはないと思いますが、関数の使い方の例として参考にしてください。
使用例1…BYROW関数で各行の合計を求める
以下の図1のシートでBYROW関数を使用して、セルB3~E5の各行の合計を求めてみましょう。
BYROW関数の引数[配列]にセルB3~E5を指定し、引数[LAMBDA関数]に「LAMBDA(x,SUM(x))」を指定します。すると、セルB3~E5の各行が1行ずつ「x」に渡され、その合計が計算されます。セルB3~E5は3行の配列なので、LAMBDA関数の計算が3回行われ、3行1列の配列が返されます。
- 「x」にセルB3~E3が渡される → 「=SUM(B3:E3)」が計算される → 20
- 「x」にセルB4~E4が渡される → 「=SUM(B4:E4)」が計算される → 33
- 「x」にセルB5~E5が渡される → 「=SUM(B5:E5)」が計算される → 42
実際にセルにBYROW関数を入力するときは、単一のセル(ここではセルG3)を選択して入力します。[Enter]キーを押して数式を確定すると、戻り値の配列のサイズ(ここでは3行1列)の範囲に数式がスピル(隣接するセルに数式が自動拡張すること)し、結果が表示されます。
=BYROW(配列, LAMBDA関数)
セルG3 | =BYROW(B3:E5,LAMBDA(x,SUM(x)))
BYROW関数を修正したいときは、入力時と同様に単一のセルG3を選択して数式を修正し、[Enter]キーで確定してください。
使用例2…BYCOL関数で各列の合計を求める
図1の数式の「BYROW」を「BYCOL」に変えると、セルB3~E5の各列が1列ずつ「x」に渡され、各列の合計が計算されます。セルB3~E5は4列の配列なので、LAMBDA関数の計算が4回行われ、1行4列の配列が返されます。
- 「x」にセルB3~B5が渡される → 「=SUM(B3:B5)」が計算される → 24
- 「x」にセルC3~C5が渡される → 「=SUM(C3:C5)」が計算される → 25
- 「x」にセルD3~D5が渡される → 「=SUM(D3:D5)」が計算される → 21
- 「x」にセルE3~E5が渡される → 「=SUM(E3:E5)」が計算される → 25
入力するときは、単一のセル(ここではセルB7)を選択して入力します。[Enter]キーを押して数式を確定すると、戻り値の配列のサイズ(ここでは1行4列)の範囲に数式がスピル(隣接するセルに数式が自動拡張すること)し、結果が表示されます。
=BYCOL(配列, LAMBDA関数)
セルB7 | =BYCOL(B3:E5,LAMBDA(x,SUM(x)))
BYCOL関数の修正も、入力先のセルB7を単独で選択して修正してください。
メモ