Contact

REDUCE in Excel: Build Custom Totals and Accumulators

Math Intermediate Microsoft Excel

Use REDUCE and LAMBDA in Excel for conditional totals, products and text accumulation, with explicit starting values and checked results.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

Quick answer: REDUCE processes an array through an accumulator and returns the final result. Supply an explicit starting value and a LAMBDA that describes how each input changes that accumulator.

Availability and version history

  • First introduced: Preview announced July 26, 2021, for Windows Beta 2108 (build 14312.20008) and Mac 16.52 (build 21072100). These are announced preview minima. Official introduction.
  • Current documented status: the dedicated help lists Excel for Microsoft 365, Excel for Microsoft 365 for Mac. Availability depends on the installed build.
  • Evidence checked: October 14, 2026. Official REDUCE help. Examples below were independently calculated, not executed in Excel.

The alphabetical catalogue also carries an Excel 2024 marker, while this dedicated help page lists Microsoft 365 only. That documentation mismatch is recorded explicitly; this guide does not resolve it by assuming perpetual-edition support.

Syntax and starting values

=REDUCE(initial_value,array,LAMBDA(accumulator,value,calculation))

The two named LAMBDA inputs represent the previous accumulated result and the next source value. The final expression is the calculation, not a third input name. An incorrect LAMBDA signature produces an incorrect-parameters #VALUE! error. REDUCE reference

The first argument is optional in the official syntax, but every example here supplies it. Use 0 for addition, 1 for multiplication and "" for text. Microsoft currently says an omitted initial value starts with the first source value; explicitly setting it makes the intended calculation easier to inspect and avoids relying on omission behavior.

Prepare a short test range

Enter the following in A1:A5. A1 is the heading Quantity; A2:A5 contain the four numbers.

Cell Value
A2 2
A3 5
A4 3
A5 8

Put formulas in C2 or another cell outside the source. This single-column dataset fixes the processing order unambiguously for the step-by-step calculations.

Example 1: follow a simple sum

=REDUCE(0,A2:A5,LAMBDA(total,quantity,total+quantity))

Expected result: 18. Starting at zero, the successive accumulator values are 2, 7, 10 and 18. Only the final value is returned. The calculation is equivalent to =SUM(A2:A5) for this numeric dataset; SUM is the clearer choice when nothing custom is needed.

Changing the initial value to 10 returns 28. The initial value contributes once, before the first source item; it is not added separately to every row.

Example 2: add only quantities above a threshold

Put 4 in C1, then use:

=REDUCE(0,A2:A5,LAMBDA(total,quantity,IF(quantity>$C$1,total+quantity,total)))

Expected result: 13, from 5+8. A nonqualifying value returns the existing total unchanged. Returning zero in that branch would erase the running total instead of skipping the item.

At a threshold of 5, the result becomes 8, because the comparison is strictly greater than. At 8, no values qualify and the explicit starting value makes the result 0.

Example 3: multiply qualifying values

Restore C1 to 4 and enter:

=REDUCE(1,A2:A5,LAMBDA(product,quantity,IF(quantity>$C$1,product*quantity,product)))

Expected result: 40, from 5×8. The start must be 1 for this multiplication. Starting at zero would keep the result at zero regardless of the quantities.

If the threshold is 8, the result is 1, the unchanged initial value. It does not mean that a source value of one qualified. If a report must distinguish “no matches” from a product of one, calculate a separate qualifying count or display an explicit no-match label.

Advanced example: build ordered text with a separator

On a separate sheet, put Pen, Pad and Box in A2:A4, with no blanks. Use:

=REDUCE("",A2:A4,LAMBDA(list,item,IF(list="",item,list&", "&item)))

Expected result: Pen, Pad, Box. The accumulator begins as empty text. The first item supplies the initial text; later items add a comma and space before their values. The source order is retained.

For an ordinary joined list, TEXTJOIN is simpler. REDUCE becomes useful when the update has conditional rules that depend on the accumulated result. This particular formula is deliberately for a nonblank list; decide how empty items should behave before applying it to an import.

Do not mistake a final scalar for the intermediate sequence. If you need every running result, SCAN serves that purpose. A custom accumulator can also propagate an error encountered in the source; fix the cause before masking it with IFERROR.

Avoid whole-column references for a small experiment. Keep the source range explicit, verify a four-row result by hand, then expand it. Check function availability if a receiving workbook reports an unrecognized name.

Verification: Inputs are fictional. Expected values and array shapes were independently calculated from these inputs; no native Excel execution or screenshot is claimed. See the editorial testing standards.