この関数は、LAMBDA 関数を各列に適用して、配列を列単位でグループ化します。
使用例
BYCOL(A1:C3,LAMBDA(列,MAX(列)))
BYCOL(A1:C3,LAMBDA(列,SUM(列)))
構文
BYCOL(配列または範囲,LAMBDA)
配列または範囲: 列単位でグループ化する配列または範囲。LAMBDA: グループ化された値を取得するために、指定した配列または範囲内の各列に適用するLAMBDA関数。- 構文:
LAMBDA(名前,数式) - 要件:
- この
LAMBDA関数には、1 個の名前引数と、その名前引数を使用する数式を指定する必要があります。LAMBDA関数を適用するときに、名前引数はグループ化される現在の列に解決されます。
- この
- 構文:
備考
- 渡された
LAMBDA関数は、1 個の名前引数を受け入れる必要があります。そうでない場合、#N/Aエラーが返されます。この引数は、入力配列内の列に対応しています。 - すべての列は単一の値にグループ化される必要があります。グループ化された値の配列の結果は返されません。
名前付き関数はLAMBDA関数のパラメータとして渡すことができ、この場合はLAMBDA関数と同様に動作します。詳しくは、名前付き関数についてのページをご覧ください。- 1 個の引数プレースホルダが定義されている必要があります。
名前付き関数の後に丸かっこを続けることはできません。
例
各列の最大値を含む 1 行 × 3 列の配列を返す
サンプルデータ:
|
A |
B |
C |
|
|---|---|---|---|
|
1 |
3 |
5 |
7 |
|
2 |
4 |
3 |
5 |
|
3 |
1 |
2 |
4 |
例: =BYCOL(A1:C3,LAMBDA(列,MAX(列)))
結果:
|
4 |
5 |
7 |
平均売上の値が 30 以上の営業担当者の名前を返す
サンプルデータ:
|
A |
B |
C |
D |
|
|---|---|---|---|---|
|
1 |
網谷 |
伊藤 |
田中 |
|
|
2 |
2019 |
20 |
10 |
20 |
|
3 |
2020 |
50 |
15 |
30 |
|
4 |
2021 |
30 |
30 |
15 |
例: =FILTER(B1:D1,BYCOL(B2:D4,LAMBDA(列,AVERAGE(列)>=30)))
結果:
|
網谷 |
名前付き関数を LAMBDA 関数として使用して、各列の最大値と最小値の差を含む 1 行 × 3 列の配列を返す
サンプルデータ:
|
A |
B |
C |
|
|---|---|---|---|
|
1 |
3 |
5 |
7 |
|
2 |
4 |
3 |
5 |
|
3 |
1 |
2 |
4 |
例: =BYCOL(A1:C3,MAX_MIN_DIFF)
名前付き関数: MAX_MIN_DIFF が名前付き関数であり、最大値と最小値の差を出力します。
数式の定義: =MAX(列)-MIN(列)。ここで、列は MAX_MIN_DIFF について定義された引数プレースホルダです。
結果:
|
3 |
3 |
3 |
一般的なエラー
渡された LAMBDA 関数の名前引数の個数が 1 個ではない渡された LAMBDA 関数の名前引数と数式引数の個数がそれぞれ 1 個ではない場合は、次のエラーが発生します。
「LAMBDA の引数の個数が間違っています。1 個の引数を指定する必要がありますが、2 個を指定しています。」
例: =BYCOL(C1:C4,LAMBDA(a,b,a+b))
この例では、LAMBDA 関数に必要な名前引数が 1 個だけであるにもかかわらず、2 個指定しています。
BYCOL 関数の最後のパラメータが LAMBDA 関数でなかった場合、次のエラーが発生します。
「引数は LAMBDA 関数にする必要があります。」
例: =BYCOL(C1:C4,4)
有効ではない名前引数があった場合、次のエラーが発生します。
「関数 LAMBDA の引数 1 は有効な名前ではありません。」
例: =BYCOL(C1:C4,LAMBDA(C1,C1+1))
この例では、C1 は範囲と競合するため、無効な名前引数です。
入力配列に LAMBDA 関数を適用しても各列が単一の値にグループ化されない場合、次のエラーが発生します。
「単一の値が返されます。ネストされた配列の結果は返されません。」
例: =BYCOL(C1:C3,LAMBDA(列,列))
関連する関数
- LAMBDA 関数: 一連の
名前引数と、それらの引数を使用する数式を含むカスタム関数を作成して返すことができます。 - MAP 関数: 指定した配列内の各値を新しい値にマッピングします。
- REDUCE 関数: 配列を累積結果に減らします。
- BYROW 関数: 配列を行単位でグループ化します。
- SCAN 関数: 配列をスキャンして、中間値を生成します。
- MAKEARRAY 関数: 指定したディメンションの計算結果の配列を作成します。
- 名前付き関数の作成と使用:
LAMBDA関数と同じように、カスタム関数を作成して保存できます。