Free tools Windows power users keep installed
One-click scans. No signup required.
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
MAP runs a custom calculation on every value in one or more arrays and returns the results together as a new array. You write the calculation once, as a LAMBDA, and Excel applies it to each element, so you do not need a helper column or a formula copied down a range. MAP belongs to Excel’s LAMBDA helper family, and it is the right tool when each input value should produce its own output value.
What MAP does and how it is written
Microsoft’s MAP function page defines the function this way: “Returns an array formed by mapping each value in the array(s) to a new value by applying a LAMBDA to create a new value.” The documented pattern is:
=MAP(array1, lambda_or_array<#>)
Three rules follow from that syntax:
- The LAMBDA is always the last argument.
- Each array you pass needs its own parameter in the LAMBDA. Two arrays require a LAMBDA with two parameters, and so on.
- The parameter names are yours to choose. During each call, a parameter holds one value taken from its matching array.
One array: transforming each value
Microsoft’s first example applies a condition to a block of cells:
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware match=MAP(A1:C2, LAMBDA(a, IF(a>4, a*a, a)))
Excel reads the six cells in A1:C2 one at a time. Each value is passed to the parameter a. If the value is greater than 4, the LAMBDA returns its square; otherwise it returns the value unchanged. A cell holding 3 stays 3, and a cell holding 5 becomes 25. All six results come back as one array.
Reading the formula step by step
- MAP takes the first value in A1:C2 and assigns it to
a. - The IF test checks whether
ais greater than 4. - The LAMBDA returns
a*awhen the test is true, orawhen it is false. - MAP repeats steps 1 to 3 for every remaining value and returns the combined results.
Two arrays: testing paired columns
When the calculation needs values from two places in the same position, pass two arrays. Microsoft’s example uses columns of an Excel table named TableA:
=MAP(TableA[Col1], TableA[Col2], LAMBDA(a,b, AND(a,b)))
Each call of the LAMBDA receives the value from Col1 and the value from Col2 for the same row. The result for that row is TRUE only when both values evaluate as TRUE. Excel’s AND treats 0 as FALSE and any other number as TRUE, so a row with 0 in either column returns FALSE. The structured reference TableA[Col1] works only if the data is formatted as a table with that name.
Using MAP inside FILTER
MAP can also produce a true/false test that another function uses. Microsoft’s advanced example selects rows where the size is “Large” and the color is “Red”:
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →=FILTER(D2:E11, MAP(D2:D11, E2:E11, LAMBDA(s,c, AND(s="Large", c="Red"))))
MAP evaluates each size and color pair in rows 2 to 11 and returns TRUE or FALSE for each row. FILTER then keeps only the rows marked TRUE. The two arrays passed to MAP must cover the same rows as the array FILTER is selecting from, which is why both run from row 2 to row 11.
MAP compared with BYROW, BYCOL, REDUCE and SCAN
MAP, BYROW, BYCOL, REDUCE and SCAN all accept LAMBDAs, so the deciding question is the shape of the answer you need. Microsoft’s logical functions reference describes these roles:
| Helper | What it returns | Use it when | Example task |
|---|---|---|---|
| MAP | One new value for each value in the array(s) | Each element needs its own result or its own test | Square each value above 4 |
| BYROW | One result for each row | Each row needs a summary | A total for each row |
| BYCOL | One result for each column | Each column needs a summary | The largest value in each column |
| REDUCE | One accumulated value | All values combine into a single result | One total for the whole range |
| SCAN | An array of intermediate accumulated results | You need a running result at each step | A running total down a column |
If the answer should line up with the input cell by cell, MAP is the match. If the answer should be one summary per row or column, BYROW or BYCOL fits better. Microsoft’s documentation does not make speed claims for MAP, so choose it for how well it fits the task rather than for performance.
Rank #3
Which Excel versions support MAP
Microsoft’s MAP page lists support for:
- Excel for Microsoft 365 (Windows and Mac)
- Excel 2024 (Windows and Mac)
Microsoft’s alphabetical function index gives MAP the version marker “2024”. Microsoft explains that these markers show the Excel release in which a function was introduced. The support page does not list Excel 2021 or earlier, so do not assume a MAP formula will calculate there. If you share a workbook, confirm that the recipient’s edition is on the list before relying on the formula.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Fixing MAP and LAMBDA errors
#VALUE! (Incorrect Parameters)
Microsoft says an invalid LAMBDA or an incorrect parameter count returns #VALUE!, labeled “Incorrect Parameters.” Check these items in order:
- Each array has a matching LAMBDA parameter.
- The LAMBDA is the final argument of MAP.
- Parentheses and argument separators match your regional settings. Some locales use semicolons where English-language examples use commas.
#CALC!
A LAMBDA typed into a cell without being called returns #CALC!. A LAMBDA is a definition, so it needs arguments to produce a value. To test one, supply sample arguments directly:
Rank #4
=LAMBDA(a, a*a)(5)
This returns 25. Once the LAMBDA works in a cell, it can be passed to MAP.
#NUM!
Microsoft says excessive circular recursion can return #NUM!. This happens when a LAMBDA calls itself without a point where the calls stop. Add a stopping condition, or rewrite the logic so the LAMBDA does not depend on repeated self-calls.
Recommended Free Tools
Turn a tested LAMBDA into a reusable function
Microsoft’s LAMBDA page recommends testing a LAMBDA in a cell first, then saving it under a name when it works. To do that:
Best Value
- Test the LAMBDA by calling it with a few sample arguments, for example
=LAMBDA(a, IF(a>4, a*a, a))(5), which returns 25. - Check the result for several inputs, including a value on each side of the condition.
- Select the Formulas tab, then choose Name Manager.
- Select New, enter a name in the Name box, and paste the LAMBDA definition into the Refers to box. Select OK, then Close.
After that, the name works inside MAP. For example, if you saved the LAMBDA as SquareIfOver4, you can write =MAP(A1:C2, SquareIfOver4).
Excel does not provide a performance benchmark for MAP in Microsoft’s documentation, and this article does not add one. Use it where a per-value result is what you need, and check the output against a few known inputs before building it into a larger workbook.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

