この関数は、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
関数と同じように、カスタム関数を作成して保存できます。