This function returns an array of specified dimensions with values calculated by application of a LAMBDA function.
Sample Usage
MAKEARRAY(2, 3, LAMBDA(row_index, column_index, row_index+column_index))
MAKEARRAY(2, 3, LAMBDA(row_index, column_index, row_index*column_index))
Syntax
MAKEARRAY(rows, columns, LAMBDA)
-
rows: The number of rows to return. -
columns: The number of columns to return. -
LAMBDA: ALAMBDAthat’s applied to create the array.- Syntax:
LAMBDA(name1, name2, formula_expression) - Requirements:
- The
LAMBDAmust have exactly 2namearguments along with aformula_expressionwhich uses thosenames. When applying theLAMBDA,name1resolves to the currentrow_indexandname2resolves to the currentcolumn_index.
- The
- Syntax:
Notes
-
The passed
LAMBDAfunction should accept exactly 2namearguments, otherwise an#N/Aerror is returned. These correspond torow_indexandcolumn_index, in order. These are explained as:-
name1: Resolves to the currentrow_indexfor which value is created. -
name2: Resolves to the currentcolumn_indexfor which value is created.
-
- Every value created by the
LAMBDAfunction applied on indices should be a single value. Array results for created values aren’t supported. -
row_indexandcolumn_indexstart from 1. - A
named functioncan be passed for theLAMBDAparameter and behaves like aLAMBDAfunction in this case. Learn more about named functions .- The
named functionmust follow theLAMBDAsyntax forMAKEARRAYwith exactly 2 argument placeholders defined for it. - The
named functionshouldn't be followed by parenthesis.
- The
Examples
Return a 2 by 3 array with row index*column index as cell value
Example: =MAKEARRAY(2, 3, LAMBDA(row_index, column_index, row_index*column_index))
Result:
| 1 |
2 |
3 |
| 2 |
4 |
6 |
Return a 2 by 3 array with random numbers between 1 and 100
Example: =MAKEARRAY(2, 3, LAMBDA(row_index, column_index, RANDBETWEEN(1,100)))
Result:
| 53 |
70 |
38 |
| 6 |
47 |
78 |
In this example, the function makes a randomized 2 by 3 array, with a number between 1 and 100 for each cell.
Use a named function as LAMBDA to return a 4 by 4 array
Use a named function
as LAMBDA
to return a 4 by 4 array with data in waterfall format. Where the value of an additional row equals the value of the previous row +1, given that the starting value is 100 in row 1.
Named function: WATERFALL
is a named function
which outputs a value of 100 + row_index
- 1 if the cell’s row_index
is lower than or equals to column_index
, else it leaves the cell blank.
Formula definition: =if(row_index<=column_index, 100+row_index-1, "")
where row_index
and column_index
are argument placeholders defined for WATERFALL
.
Example: =MAKEARRAY(4,4,WATERFALL)
Result:
| 100 |
100 |
100 |
100 |
| 101 |
101 |
101 |
|
| 102 |
102 |
||
| 103 |
Use a named function as LAMBDA to find the count of employees
Use a named function
as a LAMBDA
function to find the count of employees that joined in a particular quarter in a particular year.
Example data:
| A |
B |
C |
D |
E |
F |
G |
H |
|
|---|---|---|---|---|---|---|---|---|
| 1 |
2020 |
John,Adam,Stacy,Michael,Peter,Kimberly,Maurice,Steven |
Q1 |
Q2 |
Q3 |
Q4 |
||
| 2 |
2021 |
Nancy,Mark,Alice,Lily,Zack,Christina,Charles |
2020 |
|||||
| 3 |
2021 |
|||||||
| 4 |
||||||||
| 5 |
Q1 |
John,Adam,Nancy,Mark |
||||||
| 6 |
Q2 |
Stacy,Michael,Peter,Alice |
||||||
| 7 |
Q3 |
Kimberly,Lily,Zack,Christina |
||||||
| 8 |
Q4 |
Maurice,Steven,Charles |
In array A1:B2
, you’ll find the employees who joined in a particular year. In array A5:B8
, you’ll find the employees who joined in a particular quarter. We need to populate array E2:H3
with the count of employees who joined in a particular year and quarter.
Named function: FIND_COMMON_EMPLOYEES_COUNT
is a named function
which returns the count of common employees given a quarter number and year index.
Formula definition: =COUNT(ARRAYFORMULA(MATCH(SPLIT(INDEX(Sheet1!$B$5:$B$8, quarter_no),","), SPLIT(INDEX(Sheet1!$B$1:$B$2, year_index), ","), 0)))
, where year_index
and quarter_no
are argument placeholders defined for FIND_COMMON_EMPLOYEES_COUNT
, in that order.
Example:Input this formula in E2
: =MAKEARRAY(2, 4, FIND_COMMON_EMPLOYEES_COUNT)
Result:
| A |
B |
C |
D |
E |
F |
G |
H |
|
|---|---|---|---|---|---|---|---|---|
| 1 |
2020 |
John,Adam,Stacy,Michael,Peter,Kimberly,Maurice,Steven |
Q1 |
Q2 |
Q3 |
Q4 |
||
| 2 |
2021 |
Nancy,Mark,Alice,Lily,Zack,Christina,Charles |
2020 |
2 |
3 |
1 |
2 |
|
| 3 |
2021 |
2 |
1 |
3 |
1 |
|||
| 4 |
||||||||
| 5 |
Q1 |
John,Adam,Nancy,Mark |
||||||
| 6 |
Q2 |
Stacy,Michael,Peter,Alice |
||||||
| 7 |
Q3 |
Kimberly,Lily,Zack,Christina |
||||||
| 8 |
Q4 |
Maurice,Steven,Charles |
Common Errors
The passed LAMBDA doesn't have exactly 2 name argumentsIf the LAMBDA
function doesn’t have 2 name
arguments, this error occurs:
“Wrong number of arguments to LAMBDA. Expected 3 arguments, but got 2 arguments."
Example: =MAKEARRAY(2, 3, LAMBDA(current_value, current_value+1))
In this example, LAMBDA
was given only 1 name
argument when it needed 2.
If the last parameter of MAKEARRAY
wasn’t a LAMBDA
, this error occurs:
“Argument must be a LAMBDA.”
Example: =MAKEARRAY(2, 3, 3)
If the LAMBDA
passed to MAKEARRAY
was incorrect as to its name
arguments, this error occurs:
“Argument 1 of function LAMBDA is not a valid name.”
Example: =MAKEARRAY(2,3, LAMBDA(C1, v, C1*v))
In this example, C1
is an invalid name
since it clashes with a range.
If the applied LAMBDA
on the row and column creates multiple values, this error occurs:
“Single value expected. Nested array results are not supported.”
Example: =MAKEARRAY(2,3, LAMBDA(i, j, {i, j} ))
Every application of LAMBDA
on the row_index
and column_index
must create a value which is a single value only and can't be another array.
Related functions
- LAMBDA function
: This function lets you create and return a custom function with a set of
namesand aformula_expressionthat uses them. - MAP function : This function maps each value in the given arrays to a new value.
- REDUCE function : This function reduces an array to an accumulated result.
- BYROW function : This function groups an array by rows.
- BYCOL function : This function groups an array by columns.
- SCAN function : This function scans an array and produces intermediate values.
- Create & use named functions
: This function lets you create and store custom functions, similar to
LAMBDA.

