
The SCAN function passes all values in an array to a LAMBDA function, the LAMBDA function calculates new values based on a formula you specify. It then returns an array with the same size as the original array. (This is not always the case.)
1. SCAN Function Syntax
SCAN([initial_value], array, lambda(accumulator, value, calculation))
Back to top
2. SCAN Function Arguments
Argument |
Description |
[initial_value] |
Optional. Lets you specify a starting value. |
array |
Required. A cell reference to a cell range or an array. |
lambda(
accumulator,
value, calculation) |
Required. A lambda function with three arguments:
- accumulator
- value
- calculation |
accumulator |
Required. This is the sum the SCAN function returns. |
value |
Required. Iterates through each value in the array or cell range. |
calculation |
Required. A calculation containing the accumulator and value parameters. |
Back to top
3. SCAN Function Example

This example demonstrates a formula that calculates cumulative interest based on a cell range containing loan balance numbers (D9:D20).
The table in the image above shows a linear loan meaning the monthly payment varies contrary to an annuity loan that has a fixed monthly payment.
This is a simple demonstration of the SCAN function, I know that the formula can be made a lot smaller using only the division, multiplication, and addition operators.
Formula in cell D3:
=SCAN(0,D9:D20,LAMBDA(a,b,a+b*$D$6/12))
Explaining the formula
Step 1 - Build the LAMBDA function
The LAMBDA function build custom functions without VBA, macros or javascript.
Function syntax: LAMBDA([parameter1, parameter2, …,] calculation)
The LAMBDA function is iterated as many times as there are values in cell range B3:C11.
LAMBDA(a,b,a+b*$D$6/12)
The first argument specifies the accumulator variable, the second argument is the value variable. The third argument is the actual calculation:
a+b*$D$6/12
It calculates the interest for each month and adds it to a total (accumulate variable a).
Step 2 - Pass values to the LAMBDA function
The SCAN function lets you pass arrays to the LAMBDA function.
SCAN(0,D9:D20,LAMBDA(a,b,a+b*$D$6/12))
Each value in cell range D9:D20 is put in variable b, it is then added to a total.
Back to top
Back to top
'SCAN' function examples
The following article has a formula that contains the SCAN function.
Functions in this article
Functions in 'Logical' category
The SCAN function function is one of many functions in the 'Logical' category.
Perform a logical test in each argument and if all arguments return TRUE the AND function returns TRUE.
Passes all values in a column based on an array to a LAMBDA function, the LAMBDA function calculates new values based on a formula you specify. It then continues with the next column until all columns in the array have been processed.
Puts values from an array into a LAMBDA function row-wise.
Returns the logical (boolean) value FALSE.
Returns one value if the logical test is TRUE and another value if the logical test is FALSE.
If the value argument returns an error, the value_if_error argument is used. If the value argument does NOT return an error, the IFERROR function returns the value argument.
Handles #N/A errors only, it returns a specific value if the formula returns a #N/A error.
Checks whether one or more conditions are met and returns a value that corresponds to the first TRUE condition.
Build custom functions without VBA, macros or javascript.
Passes all values in an array to a LAMBDA function, the LAMBDA function calculates new values based on a formula you specify. It then returns an array with the same size as the original array.
Returns the boolean opposite to the given argument.
Evaluates a logical expression in each argument and if at least one argument returns TRUE the OR function returns TRUE. If all arguments return FALSE the OR function also returns FALSE.
Shrinks an array to an accumulated value, a LAMBDA function is needed to properly accumulate each value in order to return a total.
Passes values in an array to a LAMBDA function, the LAMBDA function calculates new values based on a formula you specify. It then returns an array with the same size as the original array using an accumulator parameter.
Returns a given value determined by an expression and a list of values.
Returns the logical (boolean) value TRUE.
Calculates the logical exclusive OR meaning if at least one of the arguments evaluates to TRUE then the XOR returns TRUE. All arguments must be evaluated to FALSE for the XOR function to return FALSE.
Excel function categories
Excel functions that let you resize, combine, and shape arrays.
Functions for backward compatibility with earlier Excel versions. Compatibility functions are replaced with newer functions with improved accuracy. Use the new functions if compatibility isn't required.
Perform basic operations to a database-like structure.
Functions that let you perform calculations to Excel date and time values.
Let's you manipulate binary numbers, convert values between different numeral systems, and calculate imaginary numbers.
Calculate present value, interest, accumulated interest, principal, accumulated principal, depreciation, payment, price, growth, yield for securities, and other financial calculations.
Functions that let you get information from a cell, formatting, formula, worksheet, workbook, filepath, and other entitites.
Functions that let you return and manipulate logical values, and also control formula calculations based on logical expressions.
These functions let you sort, lookup, get external data like stock quotes, filter values based a condition or criteria, and get the relative position of a given value in a specific cell range. They also let you calculate row, column, and other properties of cell references.
You will find functions in this category that calculates random values, round numerical values, create sequential numbers, trigonometry, and more.
Calculate distributions, binomial distributions, exponential distribution, probabilities, variance, covariance, confidence interval, frequency, geometric mean, standard deviation, average, median, and other statistical metrics.
Functions that let you manipulate text values, substitute strings, find string in value, extract a substring in a string, convert characters to ANSI code among other functions.
Get data from the internet, extract data from an XML string and more.
Excel categories
Latest updated articles.
More than 300 Excel functions with detailed information including syntax, arguments, return values, and examples for most of the functions used in Excel formulas.
More than 1300 formulas organized in subcategories.
Excel Tables simplifies your work with data, adding or removing data, filtering, totals, sorting, enhance readability using cell formatting, cell references, formulas, and more.
Allows you to filter data based on selected value , a given text, or other criteria. It also lets you filter existing data or move filtered values to a new location.
Lets you control what a user can type into a cell. It allows you to specifiy conditions and show a custom message if entered data is not valid.
Lets the user work more efficiently by showing a list that the user can select a value from. This lets you control what is shown in the list and is faster than typing into a cell.
Lets you name one or more cells, this makes it easier to find cells using the Name box, read and understand formulas containing names instead of cell references.
The Excel Solver is a free add-in that uses objective cells, constraints based on formulas on a worksheet to perform what-if analysis and other decision problems like permutations and combinations.
An Excel feature that lets you visualize data in a graph.
Format cells or cell values based a condition or criteria, there a multiple built-in Conditional Formatting tools you can use or use a custom-made conditional formatting formula.
Lets you quickly summarize vast amounts of data in a very user-friendly way. This powerful Excel feature lets you then analyze, organize and categorize important data efficiently.
VBA stands for Visual Basic for Applications and is a computer programming language developed by Microsoft, it allows you to automate time-consuming tasks and create custom functions.
A program or subroutine built in VBA that anyone can create. Use the macro-recorder to quickly create your own VBA macros.
UDF stands for User Defined Functions and is custom built functions anyone can create.
A list of all published articles.
How to comment
How to add a formula to your comment
<code>Insert your formula here.</code>
Convert less than and larger than signs
Use html character entities instead of less than and larger than signs.
< becomes < and > becomes >
How to add VBA code to your comment
[vb 1="vbnet" language=","]
Put your VBA code here.
[/vb]
How to add a picture to your comment:
Upload picture to postimage.org or imgur
Paste image link to your comment.
Contact Oscar
You can contact me through this contact form