Array Formula Guidelines
Array Formula Guidelines
Microsoft
Office
0
Sign in
Office Buy Office 365
Products
Resources
• Training
• Setup & install Was this information helpful? Yes No
×
• FAQ
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 2 of 28
Install
Account
Training
Admin
Excel / Formulas and functions / Formulas / Guidelines and examples of array formulas
To become an Excel power user, you need to know how to use array formulas,
which can perform calculations that you can't do by using non-array formulas. The
following article is based on a series of Excel Power User columns written by Colin
Wilcox and adapted from chapters 14 and 15 of Excel 2002 Formulas, a book
written by John Walkenbach, an Excel MVP.
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 3 of 28
Sum only numbers that meet certain conditions, such as the lowest values in a
range or numbers that fall between an upper and lower boundary.
The examples in the next section show you how to create multi-cell and single-cell
array formulas.
Try it!
This exercise shows you how to use multi-cell and single-cell array formulas to
calculate a set of sales figures. The first set of steps uses a multi-cell formula to
calculate a set of subtotals. The second set uses a single-cell formula to calculate a
grand total.
1. Copy the entire table below and paste it into cell A1 in a blank worksheet in
Was this information helpful? Yes No
×
Excel.
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 4 of 28
Coupe 4 37000
Coupe 8 21000
Coupe 1 31000
Coupe 5 37000
Coupe 8 31000
'=SUM(C2:C11*D2:D11) =SUM(C2:C11*D2:D11)
2. To see Total Sales of coupes and sedans for each salesperson, select E2:E11,
enter the formula =C2:C11*D2:D11, and then press Ctrl+Shift+Enter.
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 5 of 28
3. To see the Grand Total of all sales, select cell F11, enter the formula =SUM
(C2:C11*D2:D11), and then press Ctrl+Shift+Enter.
You can download this workbook by clicking the green Excel button in the black
bar at the bottom of the workbook. Then you can open the file in Excel, select the
cells containing the array formulas, and press Ctrl+Shift+Enter to make the formula
work.
If you're working along in Excel, be sure that Sheet1 is active, and then select cells
E2:E11. Press F2 and then type the formula =C2:C11*D2:D11 in the current cell of
E2. If you press Enter, you'll see that it enters the formula only in cell E2 and
displays 165000. Instead, after typing the formula, press Ctrl+Shift+Enter instead of
just Enter. Now you'll see results in cells E2:E11. Notice that in the formula bar, the
formula appears as {=C2:C11*D2:D11}. That tells you that it's an array formula, as
shown in the following table.
When you press Ctrl+Shift+Enter, Excel surrounds the formula with brace
characters ({ }) and inserts an instance of the formula in each cell of the selected
range. This happens very quickly, so what you see in column E is the total sales
amount for each car type for each salesperson. If you select E2, then select E3, E4,
and so on, you'll see that the same formula is shown: {=C2:C11*D2:D11}.
In cell F10 of the workbook, type the following formula, and then press
Ctrl+Shift+Enter:
Was this information helpful? Yes No
×
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 6 of 28
=SUM(C2:C11*D2:D11)
In this case, Excel multiplies the values in the array (the cell range C2 through D11)
and then uses the SUM function to add the totals together. The result is a grand
total of $1,590,000 in sales. This example shows how powerful this type of formula
can be. For example, suppose you have 1,000 rows of data. You can sum part or all
of that data by creating an array formula in a single cell instead of dragging the
formula down through the 1,000 rows.
Also, notice that the single-cell formula in cell G11 is completely independent of
the multi-cell formula (the formula in cells E2 through E11). This is another
advantage of using array formulas — flexibility. You could change the formulas in
column E or delete that column altogether, without affecting the formula in G11.
Consistency If you click any of the cells from E2 downward, you see the same
formula. That consistency can help ensure greater accuracy.
Smaller file sizes You can often use a single array formula instead of several
intermediate formulas. For example, the workbook uses one array formula to
calculate the results in column E. If you had used standard formulas (such as
=C2*D2, C3*D3, C4*D4…), you would have used 11 different formulas to
calculate the same results.
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 7 of 28
Array functions are a really efficient way to build a complex formula. The array
formula =SUM(C2:C11*D2:D11) is the same as this: =SUM
(C2*D2,C3*D3,C4*D4,C5*D5,C6*D6,C7*D7,C8*D8,C9*D9,C10*D10,C11*D11).
Select the range of cells to hold your results before you enter the formula. You
did this when you created the multi-cell array formula when you selected cells E2
through E11.
You can't change the contents of an individual cell in an array formula. To try
this, select cell E3 in the workbook and press Delete. Excel displays a message
that tells you that you can't change part of an array.
You can move or delete an entire array formula, but you can't move or delete
part of it. In other words, to shrink an array formula, you first delete the existing
formula and then start over.
You can't insert blank cells into or delete cells from a multi-cell array formula.
At times, you may need to expand an array formula. The process is not
complicated, but be sure to follow the guidance above.
On this worksheet, we've added some more rows of sales, in rows 12 through 17.
Here, we want to update the array formulas so that they'll now include these
additional rows.
Be sure to do this in the Excel desktop program (after you've downloaded the
workbook to your computer).
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 8 of 28
Coupe 3 30000
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 9 of 28
Coupe 1 41000
2. Select cell E18, enter the Grand Total formula =SUM(C2:C17*D2:D17) in cell
A20, and press Ctrl+Shift+Enter.
The answer should be 2,131,000.
3. Select the range of cells that contains the current array formula (E2:E11), plus
the empty cells (E12:E17) that are next to the new data. In other words, select
cells E2:E17.
5. In the formula bar, change C11 to C17, change D11 to D17, and then press
Ctrl+Shift+Enter.
Excel updates the formula in cells E2 through E11 and places an instance of the
formula in the new cells, E12 through E17.
You may occasionally forget to press Ctrl+Shift+Enter. It can happen to even the
most experienced Excel users. Remember to press this key combination
whenever youWas thisorinformation
enter helpful?
edit an array formula. Yes No
×
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 10 of 28
Other users of your workbook might not understand your formulas. In practice,
array formulas are generally not explained in a worksheet. Therefore, if other
people need to modify your workbooks, you should either avoid array formulas
or make sure those people know about any array formulas and understand how
to change them, if they need to.
Depending on the processing speed and memory of your computer, large array
formulas can slow down calculations.
Top of Page
={1,2,3,4,5}
By now, you know you need to press Ctrl+Shift+Enter when you create array
formulas. Because array constants are a component of array formulas, you
surround the constants with braces by manually typing them. You then use
Ctrl+Shift+Enter to enter the entire formula.
If you separate the items by using commas, you create a horizontal array (a row). If
you separate the items by using semicolons, you create a vertical array (a column).
To create a two-dimensional array, you delimit the items in each row by using
commas and delimit each row by using semicolons.
Here's an array in a single row: {1,2,3,4}. Here's an array in a single column: {1;2;3;4}.
And here's an array of two rows and four columns: {1,2,3,4;5,6,7,8}. In the two row
array, the first row is 1, 2, 3, and 4, and the second row is 5, 6, 7, and 8. A single
semicolon separates the two rows, between 4 and 5.
As with array formulas, you can use array constants with most of the built-in
functions that Excel provides. The following sections explain how to create each
kind of constant and how to use these constants with functions in Excel.
Top of Page
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 11 of 28
1. Use the workbook from the previous examples, or create a new workbook.
3. In the formula bar, enter the following formula, and then press Ctrl+Shift+Enter:
={1,2,3,4,5}
In this case, you should type the opening and closing braces ({ }).
2. In the formula bar, enter the following formula, and then press Ctrl+Shift+Enter:
={1;2;3;4;5}
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 12 of 28
1. In your workbook, select a block of cells four columns wide by three rows high.
2. In the formula bar, enter the following formula, and then press Ctrl+Shift+Enter:
={1,2,3,4;5,6,7,8;9,10,11,12}
2. In cell A1, type 3, and then type 4 in B1, 5 in C1, 6 in D1, and 7 in E1.
3. In cell A3, type the following formula, and then press Ctrl+Shift+Enter:
=SUM(A1:E1*{1,2,3,4,5})
Notice that Excel surrounds the constant with another set of braces, because
you entered it as an array formula.
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 13 of 28
1. Function
2. Stored array
3. Operator
4. Array constant
The last element inside the parentheses is the array constant: {1,2,3,4,5}.
Remember that Excel does not surround array constants with braces; you actually
type them. Also remember that after you add a constant to an array formula, you
press Ctrl+Shift+Enter to enter the formula.
=SUM(A1*1,B1*2,C1*3,D1*4,E1*5)
Finally, the SUM function adds the values, and the sum 85 appears in cell A3.
To avoid using the stored array and to just keep the operation entirely in memory,
replace the stored array with another array constant:
=SUM({3,4,5,6,7}*{1,2,3,4,5})
Was this information helpful? Yes No
×
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 14 of 28
To try this, copy the function, select a blank cell in your workbook, paste the
formula into the formula bar, and then press Ctrl+Shift+Enter. You'll see the same
result as you did in the earlier exercise that used the array formula:
=SUM(A1:E1*{1,2,3,4,5})
1. On the Formulas tab, in the Defined Names group, click Define Name.
The Define Name dialog box appears.
3. In the Refers to box, enter the following constant (remember to type the braces
manually):
={"January","February","March"}
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 15 of 28
=Quarter1
When you use a named constant as an array formula, remember to enter the equal
sign. If you don't, Excel interprets the array as a string of text and your formula
won't work as expected. Finally, keep in mind that you can use combinations of text
and numbers.
Some elements might not be separated with the proper character. If you omit a
comma or semicolon, or if you put one in the wrong place, the array constant
might not be created correctly or you might see a warning message.
You might have selected a range of cells that doesn't match the number of
elements in your constant. For example, if you select a column of six cells for use
Was this information
×
with a five-cell constant, the #N/Ahelpful? Yes in theNo
error value appears empty cell.
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 16 of 28
Conversely, if you select too few cells, Excel omits the values that don't have a
corresponding cell.
1. Create a new worksheet, and then select a block of empty cells four columns
wide by three rows high.
={1,2,3,4;5,6,7,8;9,10,11,12}*2
1. Select a block of empty cells four columns wide by three rows high.
={1,2,3,4;5,6,7,8;9,10,11,12}*{1,2,3,4;5,6,7,8;9,10,11,12}
Alternatively, enter this array formula, which uses the caret operator (^):
={1,2,3,4;5,6,7,8;9,10,11,12}^2
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 17 of 28
=TRANSPOSE({1,2,3,4,5})
Even though you entered a horizontal array constant, the TRANSPOSE function
converts the array constant into a column.
=TRANSPOSE({1;2;3;4;5})
Even though you entered a vertical array constant, the TRANSPOSE function
converts the constant into a row.
=TRANSPOSE({1,2,3,4;5,6,7,8;9,10,11,12})
Top of Page
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 18 of 28
The following example explains how to use array formulas to create links between
ranges of cells in different worksheets. It also shows you how to create an array
constant from the same set of values.
={10,20,30;40,50,60;70,80,90}
Be sure to type { (opening brace) before you type 10, and } (closing brace) after
you type 90, because you're creating an array of numbers.
2. Press Ctrl+Shift+Enter, which enters this array of numbers in the cell range
C8:E10 by using an array formula.
On your worksheet, C8 through E10 should look like this:
10 20 30
40 50 60
70 80 90
4. Enter the following formula in the formula bar, and then press Ctrl+Shift+Enter:
=C8:E10
A 3x3 array of cells appears in cells C1 through E3 with the same values you
seen in C8 through E10.
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 19 of 28
1. Copy this entire table and paste into a worksheet in cell A1.
2. Select cell A9, and then press Ctrl+Shift+Enter to see the total number of
characters in cells A2:A6 (66).
3. Select cell A12, and then press Ctrl+Shift+Enter to see the contents of the
longest of cells A2:A6 (cell A3).
Data
This is a
come together
to form a
single sentence.
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 20 of 28
Data
=SUM(LEN(A2:A6))
=INDEX(A2:A6,MATCH(MAX(LEN(A2:A6)),LEN(A2:A6),0),1)
The following formula is used in cell A9 counts the total number of characters (66)
in cells A2 through A6.
=SUM(LEN(A2:A6))
In this case, the LEN function returns the length of each text string in each of the
cells in the range. The SUM function then adds those values together and displays
the result (66) in the cell that contains the formula, A9.
2. In the formula bar, enter the following formula, and then press Ctrl+Shift+Enter:
=SMALL(A5:A14,{1;2;3})
The values 400, 475, and 500 appear in cells A16 through A18, respectively.
This formula uses an array constant to evaluate the SMALL function three times
and return the smallest (1), second smallest (2), and third smallest (3) members in
the array that is contained in cells A1:A10. To find more values, you add more
arguments to the constant and an equivalent number of result cells to the A12:A14
range. You can also use additional functions with this formula, such as SUM or
AVERAGE. For example:
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 21 of 28
2. In the formula bar, enter this formula, and then press Ctrl+Shift+Enter:
=LARGE(A5:A14,ROW(INDIRECT("1:3")))
The values 3200, 2700, and 2000 appear in cells A1 through A3, respectively.
At this point, it may help to know a bit about the ROW and INDIRECT functions.
You can use the ROW function to create an array of consecutive integers. For
example, select an empty column of 10 cells in your practice workbook, enter this
array formula in cells A5:A14, and then press Ctrl+Shift+Enter:
=ROW(1:10)
=ROW(INDIRECT("1:10"))
The INDIRECT function uses text strings as its arguments (which is why the range
1:10 is surrounded by double quotation marks). Excel does not adjust text values
when you insert rows or otherwise move the array formula. As a result, the ROW
function always generates the array of integers that you want.
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 22 of 28
2700, and 2000 are returned to the three-cell columnar array. If you want to find
more values, you add a greater cell range to the INDIRECT function.
Finally, you can use this formula with other functions, such as SUM and AVERAGE.
=INDEX(A6:A9,MATCH(MAX(LEN(A6:A9)),LEN(A6:A9),0),1)
Let's take a closer look at the formula, starting from the inner elements and
working outward. The LEN function returns the length of each of the items in the
cell range A6:A9. The MAX function calculates the largest value among those items,
which corresponds to the longest text string, which is in cell A7.
Here's where things get a little complex. The MATCH function calculates the offset
(the relative position) of the cell that contains the longest text string. To do that, it
requires three arguments: a lookup value, a lookup array, and a match type. The
MATCH function searches the lookup array for the specified lookup value. In this
case, the lookup value is the longest text string:
(MAX(LEN( A6 : A9 ))
LEN( A6:A9 )
The match type argument is 0. The match type can consist of a 1, 0, or -1 value. If
you specify 1, MATCH returns the largest value that is less than or equal to the
lookup value. If you specify 0, MATCH returns the first value exactly equal to the
lookup value. If you specify -1, MATCH finds the smallest value that is greater than
or equal to the specified lookup value. If you omit a match type, Excel assumes 1.
Finally, the INDEX function takes these arguments: an array, and a row and column
number within that array. The cell range A6:A9 provides the array, the MATCH
function provides the cell address, and the final argument (1) specifies that the
value comes from the first column in the array.
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 23 of 28
=SUM(IF(ISERROR(Data),"",Data))
The formula creates a new array that contains the original values minus any error
values. Starting from the inner functions and working outward, the ISERROR
function searches the cell range (Data) for errors. The IF function returns a specific
value if a condition you specify evaluates to TRUE and another value if it evaluates
to FALSE. In this case, it returns empty strings ("") for all error values because they
evaluate to TRUE, and it returns the remaining values from the range (Data)
because they evaluate to FALSE, meaning that they don't contain error values. The
SUM function then calculates the total for the filtered array.
=SUM(IF(ISERROR(Data),1,0))
This formula creates an array that contains the value 1 for the cells that contain
errors and the value 0 for the cells that don't contain errors. You can simplify the
formula and achieve the same result by removing the third argument for the IF
function, like this:
=SUM(IF(ISERROR(Data),1))
If you don't specify the argument, the IF function returns FALSE if a cell does not
contain an error value. You can simplify the formula even more:
=SUM(IF(ISERROR(Data)*1))
Wasbecause
this information helpful? Yes No
×
This version works TRUE*1=1 and FALSE*1=0.
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 24 of 28
=SUM(IF(Sales>0,Sales))
The IF function creates an array of positive values and false values. The SUM
function essentially ignores the false values because 0+0=0. The cell range that you
use in this formula can consist of any number of rows and columns.
You can also sum values that meet more than one condition. For example, this
array formula calculates values greater than 0 and less than or equal to 5:
=SUM((Sales>0)*(Sales<=5)*(Sales))
Keep in mind that this formula returns an error if the range contains one or more
non-numeric cells.
You can also create array formulas that use a type of OR condition. For example,
you can sum values that are less than 5 and greater than 15:
=SUM(IF((Sales<5)+(Sales>15),Sales))
The IF function finds all values smaller than 5 and greater than 15 and then passes
those values to the SUM function.
You can't use the AND and OR functions in array formulas directly because those
functions return a single result, either TRUE or FALSE, and array functions require
arrays of results. You can work around the problem by using the logic shown in the
previous formula. In other words, you perform math operations, such as addition or
multiplication, on values that meet the OR or AND condition.
=AVERAGE(IF(Sales<>0,Sales))
The IF function creates an array of values that do not equal 0 and then passes
those values to the AVERAGE function.
Was this information helpful? Yes No
×
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 25 of 28
The formula creates a new array of the same size as the ranges that you are
comparing. The IF function fills the array with the value 0 and the value 1 (0 for
mismatches and 1 for identical cells). The SUM function then returns the sum of
the values in the array.
Like the formula that counts error values in a range, this formula works because
TRUE*1=1, and FALSE*1=0.
=MIN(IF(Data=MAX(Data),ROW(Data),""))
The IF function creates a new array that corresponds to the range named Data. If a
corresponding cell contains the maximum value in the range, the array contains the
row number. Otherwise, the array contains an empty string (""). The MIN function
uses the new array as its second argument and returns the smallest value, which
corresponds to the row number of the maximum value in Data. If the range named
Data contains identical maximum values, the formula returns the row of the first
value.
If you want to return the actual cell address of a maximum value, use this formula:
=ADDRESS(MIN(IF(Data=MAX(Data),ROW(Data),"")),COLUMN(Data))
Was this information helpful? Yes No
×
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 26 of 28
Top of Page
See Also
Overview of formulas
What's new
• Surface Book 2
• Surface Pro
• Xbox One X
• Xbox One S
• VR & mixed reality
• Windows 10 apps
• Office apps
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 27 of 28
• Download Center
• Sales & support
• Returns
• Order tracking
• Store locations
• Support
• Buy online, pick up in store
Education
• Microsoft in education
• Office for students
• Office 365 for schools
• Deals for students & parents
• Microsoft Azure in education
Enterprise
• Microsoft Azure
• Enterprise
• Data platform
• Find a solutions provider
• Microsoft partner resources
• Microsoft AppSource
• Manufacturing & resources
• Financial services
Developer
Company
• Careers
• About Microsoft
• Company news
• Privacy at Microsoft
• Investors
• Diversity and inclusion
Was this information helpful? Yes No
×
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018
Guidelines and examples of array formulas - Office Support Page 28 of 28
• Accessibility
• Security
• Contact Us
• Privacy & Cookies
• Terms of use & sale
• Trademarks
• Office accessibility
• Legal
• © Microsoft 2018
https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d9... 5/24/2018