This is a big upgrade and a welcome change.

Dynamic Arrays solve some really hard problems in Excel, and will fundamentally change the way worksheets are designed.

Once you see how they work, you’ll never want to go back.

UNIQUE function example

Availability

Dynamic arrays and the new functions below are only availableExcel 365and Excel 2021.

Excel 2019 and earlierdo notoffer dynamic array formulas.

Example

Before we get into the details, let’s look at a simple example.

UNIQUE function example

Like all formulas, UNIQUE will update automatically when data changes.

Below, Vancouver has replaced Portland on row 11.

This will immediately be more logical to formula users.

UNIQUE function example

It is also a fully dynamic behavior when source data changes, spilled results will immediately update.

The rectangle that encloses the values is called the “spill range”.

You will notice that the spill range has special highlighting.

UNIQUE function example

In the UNIQUE example above, the spill range is E5:E10.

When data changes, the spill range will expand or contract as needed.

You might see new values added, or existing values disappear.

UNIQUE function example

In this way, a spill range is a new kind of dynamic range.

However, unless the formula is entered as amulti-cell array formula, onlyone valuewill be displayed on the worksheet.

This behavior has always made array formulas difficult to understand.

UNIQUE function example after change

Spilling makes array formulas more intuitive.

Note: when spilling is blocked by other data, you’ll see a #SPILL error.

Once you make room for the spill range, the formula will automatically spill.

Example of dynamic array spill range reference

you’re able to feed a spill range reference into other formulas directly.

Massive simplification

The addition of new dynamic array formulas means certain formulas can be drastically simplified.

For example, below we use the FILTER function to extract records in group “A”.

Dynamic array one formula only example

This is a huge benefit for many users because it makes the process of writing formulas so much simpler.

For another good example, see the multiplication table below.

Chaining functions

Things get really interesting when you chain together more than one dynamic array function.

Example of UNIQUE and SORT together

Perhaps you want to sort the results returned by UNIQUE?

This includes older functions not originally designed to work with dynamic arrays.

For example, inLegacy Excel, if we give theLEN functionarangeof text values, we’ll see asingleresult.

The LEN function with arrays - old and new

In Dynamic Excel, if we give the LEN function a range of values, we’ll seemultipleresults.

For instance, theVLOOKUP functionis designed to fetch a single value from a table, using a column index.

All formulas

Finally, note that dynamic arrays work withall formulasnot justfunctions.

Multiple results with VLOOKUP and dynamic arrays

In fact, you may see “array” and “range” used almost interchangeably.

Video:What is an array?

For a demonstration, see:How to filter with two criteria(video).

Dynamic array multiplication table

When a formula is created, Excel checks if the formula might return multiple values.

When you give a range or array to a function not programmed to accept arrays natively (i.e.

The result is an array with the same dimensions as the input array.

Array operation example test a

Lifting is a built-in behavior that happens automatically.

In Dynamic Excel, some older functions like EOMONTH “resist” spilling when provided a range.

This limitation comes from certain functions expecting a single value instead of a range.

Array operation example test b

error is essentially reporting the range as an unexpected value.

However, adding an operator in front of the reference will often fix the problem.

For example, EOMONTH(+A1:A5,1) will work and spill properly.

Array operation example test a and b

EOMONTH returns 5 results through the normal process of lifting, which is not function-specific.

The @ character enables a behavior known as “implicit intersection”.

Implicit intersection is a logical process where many values are reduced to one value.

Array operation with FILTER function

In Dynamic Excel, it is not typically needed, since multiple results can spill onto the worksheet.

When it is needed, implicit intersection is invoked manually with the @ character.

In Legacy Excel, a formula that returns multiple values won’t spill on the worksheet.

Basic array formula in Legacy Excel

Basic array formula in dynamic Excel

Simple array formula with curly braces visible

Simple array formula with curly braces not visible

UNIQUE function example

UNIQUE function example after change

Example of dynamic array spill range reference

Example of UNIQUE and SORT together

Dynamic array multiplication table

Array operation with FILTER function