REDUCE 関数

この関数は、LAMBDA 関数を各値に適用して、配列を累積結果に減らします。

使用例

REDUCE(5, A1:A3, LAMBDA(累積値, 現在の値, 累積値+現在の値))

REDUCE(2, A1:A3, LAMBDA(累積値, 現在の値, 累積値*現在の値))

構文

REDUCE(初期値, 配列または範囲, LAMBDA)

  • 初期値: 累積値の初期値。
  • 配列または範囲: 減らす対象の配列または範囲。
  • LAMBDA: 配列を減らすために配列または範囲内の各値に適用する LAMBDA 関数。
  • 構文: LAMBDA(名前 1, 名前 2, 数式)
  • 要件:
    • この LAMBDA 関数には、2 個の名前引数と、それらの名前引数を使用する数式を指定する必要があります。LAMBDA を適用するときに、名前 1累積値の現在の値に、名前 2配列または範囲現在の値にそれぞれ解決されます。LAMBDA 関数を適用するたびに、累積値は前回取得した中間値に更新されます。単純な乗算演算の例をご覧ください。

備考

  • 渡された LAMBDA 関数は、2 個の名前引数を受け入れる必要があります。そうでない場合、#N/A エラーが返されます。これらの引数は、累積値現在の値に、この順序で対応しています。引数について次に説明します。
    • 名前 1: 累積値の現在の値に解決されます。
    • 名前 2: 入力配列の現在の値に解決されます。
  • LAMBDA 関数を適用するたびに、累積値初期値で初期化され、前回取得した中間値に更新されます。
  • LAMBDA 関数の適用中、入力配列の現在の値は行ごとに検出されます。
  • 名前付き関数LAMBDA 関数のパラメータとして渡すことができ、この場合は LAMBDA 関数と同様に動作します。詳しくは、名前付き関数についてのページをご覧ください。
    • 名前付き関数は、REDUCE 関数の LAMBDA 構文に従っているとともに、2 個の引数プレースホルダが定義されている必要があります。
    • 名前付き関数の後に丸かっこを続けることはできません。

単純な乗算演算

A1:A3 と初期値のすべての要素の積を返します。

サンプルデータ:

 

A

1

3

2

2

3

4

例: =REDUCE(5, A1:A3, LAMBDA(累積値, 現在の値, 累積値*現在の値))

仕組み:

累積値の初期値 = 5

1. セル A1 の処理:

累積値 = 5

現在の値 = 3

セル A1 の処理後:

累積値 = (LAMBDA の戻り値) = 5×3 = 15

2. セル A2 の処理:

累積値 = 15

現在の値 = 2

セル A2 の処理後:

累積値 = (LAMBDA の戻り値) = 15×2 = 30

3. セル A3 の処理:

累積値 = 30

現在の値 = 4

セル A3 の処理後:

累積値 = (LAMBDA の戻り値) = 30×4 = 120

結果:

120

2,000 円以上の価格を合計する

2,000 円以上のすべての価格を加算します。

サンプルデータ:

 

A

1

5,000 円

2

1,000 円

3

3,000 円

4

2,000 円

例: =REDUCE(0, A1:A4, LAMBDA(累積値, 価格, if(価格>=20, 累積値 + 価格, 累積値)))

結果:

10,000 円

名前付き関数を LAMBDA 関数として使用する

各年の価格を特定の割合で引き上げて、その年の最終価格を返します。

コピーを作成

サンプルデータ:

 

A

B

C

1

2022

10%

初回価格

2

2023

5%

10,000 円

3

2024

5%

 

4

2025

10%

 

例: =REDUCE(C2,B1:B4,PRICE_INCREASE)

名前付き関数: PRICE_INCREASE名前付き関数であり、列 B の割合値で引き上げた後の結果を出力します。

数式の定義: =累積値+累積値*セル。ここで、累積値セルPRICE_INCREASE について定義された引数プレースホルダです。

結果:

133.4

2 次元のデータセットに対して名前付き関数を LAMBDA 関数として使用する

行単位の順序を維持しながら、名前が重複しないように、四半期ごとの最優秀社員のリストを作成します。

コピーを作成

サンプルデータ:

 

A

B

C

   

1

 

1Q

2Q

3Q

4Q

2

2020

城田

阿部

佐藤

阿部

3

2021

真下

城田

木村

4

2022

佐藤

百田

阿部

名前付き関数: ADD_IF_NOT_PRESENT名前付き関数であり、指定した文字列値を値の配列に追加します。

関数の定義: =IF(CONTAINS(新しい値, 既存の値), 既存の値, {既存の値, 新しい値})。ここで、既存の値新しい値は、この順序で ADD_IF_NOT_PRESENT について定義された引数プレースホルダで、CONTAINS は別の名前付き関数です。

例: =REDUCE({B2}, B2:E4, ADD_IF_NOT_PRESENT)

結果:

城田

阿部

佐藤

真下

木村

百田

一般的なエラー

渡された LAMBDA 関数の名前引数の個数が 2 個ではない

LAMBDA 関数の名前引数の個数が 2 個でない場合、次のエラーが発生します。

「LAMBDA の引数の個数が間違っています。3 個の引数を指定する必要がありますが、2 個を指定しています。」

例: =REDUCE(5, C1:C4, LAMBDA(現在の値, 現在の値+1))

この例では、LAMBDA 関数に必要な名前引数が 2 個であるにもかかわらず、1 個しか指定されていません。

REDUCE 関数の最後のパラメータが LAMBDA 関数でなかった

REDUCE 関数の最後のパラメータが LAMBDA 関数でなかった場合、次のエラーが発生します。

「引数は LAMBDA 関数にする必要があります。」

例: =REDUCE(5, C1:C4, 3)

この例では、最後の関数が LAMBDA 関数ではなく、3 になっています。

REDUCE 関数に渡された LAMBDA 関数が正しくない

有効ではない名前引数がある場合、次のエラーが発生します。

「関数 LAMBDA の引数 1 は有効な名前ではありません。」

例: =REDUCE(5, C1:C4, LAMBDA(C1, 値, C1+値))

この例では、C1 は範囲と競合するため、無効な名前引数です。

関連する関数

  • LAMBDA 関数: 一連の名前引数と、それらの引数を使用する数式を含むカスタム関数を作成して返すことができます。
  • MAP 関数: 指定した配列内の各値を新しい値にマッピングします。
  • BYROW 関数: 配列を行単位でグループ化します。
  • BYCOL 関数: 配列を列単位でグループ化します。
  • SCAN 関数: 配列をスキャンして、中間値を生成します。
  • MAKEARRAY 関数: 指定したディメンションの計算結果の配列を作成します。
  • 名前付き関数の作成と使用: LAMBDA 関数と同じように、カスタム関数を作成して保存できます。
true
ラーニング センターにアクセス

職場や学校で Google ドキュメントなどの Google のサービスを利用している場合は、役に立つヒント、チュートリアル、テンプレートをお試しください。Office をインストールせずに Office ファイルを操作する方法、プロジェクト計画やチーム カレンダーを動的に作成する方法、受信トレイを自動的に整理する方法などをご確認いただけます。

検索
検索をクリア
検索を終了
メインメニュー
811647758293083741
true
ヘルプセンターを検索
true
true
true
true
true
35
false
false