【EXCEL】 累計計算をするREDUCE関数(LAMBDAヘルパー関数)

スポンサーリンク

はじめに

hirachin
hirachin

こんにちは!ひらちんです!

今回は、LAMBDAヘルパー関数の中で、累計計算が出来る REDUCE関数の紹介です!

LAMBDA関数について分からない方は、先にこちらをどうぞ!

スポンサーリンク

REDUCE関数

REDUCE関数はどんな関数かと言うと、EXCELのヘルプを開くと次のように書かれています。

各値にLAMBDAを適用し、アキュムレーターに合計値を返すことで、配列を累積値に減らします。

相変わらずヘルプする気は無いようですw

簡単に言うと、関数の中で配列に指定した値を使って繰り返し計算した累計の結果を出せるような機能を持ったLAMBDAヘルパー関数です。

LAMBDAヘルパー関数とはLAMBDA関数と一緒に登場した、LAMBDA関数とセット使うための関数です。LAMBDAヘルパー関数を使うことで、LAMBDA関数が更に協力になるってことですね!

マイクロソフトをいディスった割には、上手く説明出来ません。。。(謝)

ヘルプによると構文は次のようになります。

構文

= REDUCE([initial_value]、配列、lambda(アキュムレーター、値))

引数名説明
[initial_value]アキュムレーターの最初の値
配列処理する配列(範囲とかテーブルとか)
lambda配列に対して処理させたいLAMBDA。
LAMBDAは以下の2つのパラメーターを取ります
アキュムレーター:累積の値を受け取る
値:配列内の各要素に適用される計算。
スポンサーリンク

サンプル

実際にやってみた方が分かり良いと思いますので REDUCE関数を使った簡単なサンプルで説明します!

ただ、1が10個入れてあるだけです。

C1セルに、次の数式を入力します。

=REDUCE(0, A1:A10, LAMBDA(x, y, x+y))

すると、計算結果は「10」となります。

構文と照らし合わせて説明します。

なんかよくわかりませんが、x+yのところの計算式は、ヘルプでは分かりづらいですね。

こうやって書いたら良いのに。。。

構文

= REDUCE([initial_value]、配列、lambda(アキュムレーター、値、計算式))

処理としては次の図の方が分かりやすいかもしれません。

まずは、LAMBDA関数内にあるxに初期値([initial_value]、ここでは0)がセットされる。

yには、配列(A1:A10)の中身が順番にセットされます。

x+yで計算された結果が、xに保存されるて次の計算に使われます。

つまりA1:A10は10個のセルがあるので、10回計算が繰り返されるってわけです。

1回目はxが0(初期値)でyがA1の1

0+1=1

でこの1が次のxに使われます。

2回目はxが1になっていて、yはA2の1

1+1=2

で、この2が次のxになる。

を10回繰り返して

2+1=3

3+1=4

4+1=5

9+1=10

最終的に10という結果が返ってくるってわけですね。

アキュムレーターのところに設定した、xとyは、別にxとyって言う文字列じゃなくても大丈夫です。

日本語も設定出来るので、次のようにするとより分かりやすいかもしれません。

=REDUCE(0, A1:A10, LAMBDA(計算結果, 配列からの抽出値, 計算結果+配列からの抽出値))

長い?分かりにくい?笑

このように、 REDUCE関数を使うことで、指定した配列内を繰り返し処理することが出来るようになります(^o^)

まとめ

REDUCE関数について基本的な使い方を紹介しました!繰り返し処理はワークシート関数では難しかったですが、LAMBDA関数の登場で簡単に実装出来るようになりましたね(^o^)

コメント

タイトルとURLをコピーしました