REDUCE関数の使い方|合計・文字結合・割引計算など繰り返し処理の最終結果を出す関数

Googleスプレッドシートには、配列に対して順番に処理を行い、最後にひとつの結果だけを返す関数があります。

それが今回ご紹介する REDUCE関数 です。

「ただの合計ではなく、条件付きで集計したい」
「文字列を並べてひとつの文にしたい」
「累積割引など、前の結果を引き継ぎながら最終値を出したい」

そんなときに活躍してくれるのが REDUCE関数。

この記事では、REDUCE関数の基本から、売上合計・文字の連結・割引シミュレーションなど、事務作業や実務で役立つ活用例を交えてやさしく解説していきます。

目次

REDUCE関数ってどんな関数?

まずは基本の構文と使い方を見ていきましょう。

REDUCE関数の構文

=REDUCE(初期値, 配列, LAMBDA(累積値, 現在の値, 処理内容))
引数説明
初期値最初の値(数値・文字列など)
配列処理したい範囲(例:B2:B10)
LAMBDA関数累積値現在の値を使ってどう処理するかを書く

SCAN関数と違って、REDUCE関数は「最後の結果だけ」を返すのが特徴です。

REDUCE関数の出力のイメージ

たとえば、A列に以下のデータがあるとします。

A列
1
2
3
4

このとき、次の数式を使うと

=REDUCE(0, A2:A5, LAMBDA(合計, 数値, 合計 + 数値))

出力結果は 10 になります。

活用例①|売上の合計を出す

基本的な合計も、REDUCEを使えば柔軟な条件付き集計が可能です。

データ例

日付売上
6/1500
6/2800
6/31200
6/41000

通常の合計

=REDUCE(0, B2:B5, LAMBDA(合計, 金額, 合計 + 金額))

3,500 が返ってきます。

条件付き合計(1000円以上のみ)

=REDUCE(0, B2:B5, LAMBDA(合計, 金額, IF(金額 >= 1000, 合計 + 金額, 合計)))

2,200(1200 + 1000)

SUMIFSのような使い方もできて、条件が複雑なときに便利です!

活用例②|累積割引の最終価格を求める

REDUCE関数の強みは「前の結果を引き継いで処理できる」こと。

たとえば、以下のように複数の割引率(%)があって、順番に割引を適用した最終価格を出したいとします。

データ例

商品名割引率(%)
A商品10
B商品20
C商品5

初期価格が 10,000円 の場合に、10%→20%→5% の順に割引をかけていくと…

数式

=REDUCE(10000, B2:B4, LAMBDA(価格, 割引率, 価格 * (1 - 割引率 / 100)))

6,840円

✅ このように、「前の値に現在の処理を適用し続ける」計算は、REDUCEでしかできません!

活用例③|名前をカンマで連結する

各セルに名前が入っていて、1つのセルにまとめたいときに使えます。

A列
田中
佐藤
鈴木
高橋

数式

=REDUCE("", A2:A5, LAMBDA(結果, 名前, IF(結果 = "", 名前, 結果 & ", " & 名前)))

田中, 佐藤, 鈴木, 高橋

TEXTJOINのように使えますが、途中で条件を入れたり整形したいときに便利!

活用例④|遅刻回数のカウント

「9:00より遅れて出勤した日」を数えたい場合。

日付出勤時刻
6/18:55
6/29:10
6/39:05
6/48:45

数式

=REDUCE(0, B2:B5, LAMBDA(遅刻数, 時刻, IF(時刻 > TIME(9, 0, 0), 遅刻数 + 1, 遅刻数)))

2回の遅刻

✅ COUNTIFSより柔軟にロジックを組めるので、集計条件が複雑なときに役立ちます。

REDUCEとSCANの違い

関数出力内容用途
REDUCE最終結果のみ合計・件数・割引計算・文字連結など
SCAN処理の途中経過すべて累積集計・残高の推移・グラフなど

🔁 同じLAMBDAでも、REDUCEは「最後だけ」、SCANは「すべて」出力。

REDUCE関数のコツと注意点

✅ ポイント⚠ 注意点
IFや演算を自由に組み合わせられる初期値はデータの型(数値・文字など)に合わせる
結果を1つにまとめたいときに最適LAMBDAは引数2つ必要(累積値, 現在の値)
途中の処理を見たい場合はSCANを活用配列の空白・型違いがエラーの原因になることも

まとめ

REDUCE関数は、Googleスプレッドシートで配列を順番に処理し、最終的な1つの結果を返す関数です。

今回ご紹介したように、

  • 売上の合計(条件付きもOK)
  • 割引の累積計算
  • 名前の文字連結
  • 遅刻や条件件数のカウント

など、実務の中でも“ちょっと工夫したい処理”に最適です。

LAMBDA関数との組み合わせで、IFや演算を自由にカスタマイズできるのが最大の特徴。

「集計や加工の条件がちょっと複雑になってきたな…」
そんなときは、REDUCE関数をぜひ使ってみてくださいね。

関連記事(あわせて読みたい)

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

エンジニアを数年経験し、現在は事業会社でデータ分析業務に従事しています。
取得資格:基本情報技術者、G検定、統計検定2級

目次