Study smart | Excel superstars

Dynamic arrays

How one formula can replace repetitive work and help you analyse data faster and more accurately

Words Traci Williams, excelace.co.uk

Key Stats

  • Dynamic arrays can reduce formula duplication by up to 90% in structured reports
  • A single dynamic array formula can replace dozens or even hundreds of copied formulas
Roundel, reading "test your knowledge with our quiz - click here"

In accounting, we’re used to building spreadsheets that rely on formulas copied down rows or across columns. While this works, it can be time-consuming and prone to error, especially when dealing with large datasets.

In modern versions of Microsoft Excel (Microsoft 365), there is a more efficient approach: dynamic arrays.

With dynamic arrays, you write one formula in a single cell, press Enter, and Excel automatically returns multiple results into neighbouring cells. This is known as spilling.

Even better, the results automatically expand or contract when your data changes – no need to copy formulas, no manual updates.

For anyone working with financial data, this is a significant improvement in both efficiency and accuracy.

Dynamic array functions

Here are five of the key dynamic arrays and how they apply to accounting scenarios:

1) UNIQUE()

What it does: Returns distinct values from a dataset

Accounting use case: Extract a list of unique customers, suppliers or GL codes

2) SORT()

What it does: Sorts data dynamically

Accounting use case: Keep transaction listings or ledgers automatically sorted by date or value

3) FILTER()

What it does: Returns only data that meets criteria

Accounting use case: Extract transactions for a specific period, department or account

4) SEQUENCE()

What it does: Generates number or date sequences

Accounting use case: Create accounting periods, invoice numbers or reporting timelines

5) (COMBINATIONS)

What it does: Allows multiple steps in one formula

Accounting use case: Build dynamic reports without pivot tables or helper columns

Example 1: cleaning transaction data (UNIQUE and SORT)

With this list of customer names, there are duplicates and inconsistent formatting:

Excel screenshot showing a list of customers. There are duplicates and inconsistent formatting.

Before dynamic arrays:

  • Copy data to another column
  • Remove duplicates manually (or use Remove Duplicates function)
  • Manually amend formatting
  • Sort the list

After dynamic arrays:

=UNIQUE(A2:A10)

This instantly produces a clean list of unique customers:

Excel screenshot showing the customer list on the left in column A, with a selection of four in column C and a formula for sorting them in column D (=UNIQUE(A2:A10))

In cell C2, you can see the single formula and the list of unique values it returns.

We can also use the SORT formula to turn the result into an alphabetical list. The existing formula would literally be wrapped with SORT: =SORT(UNIQUE(A2:A10))

The real beauty of this formula is that it automatically spills to row five, as that is how many unique values there are. However, if we were to change the data, the UNIQUE formula would automatically adjust to number of rows it spills into, like this:

Excel screenshot showing the SORT formula to turn the result into an alphabetical list. The existing formula is wrapped with SORT: =SORT(UNIQUE(A2:A10))

We could also take this a step further and standardise the text using PROPER().

The existing formula would be wrapped with PROPER: =PROPER(SORT(UNIQUE(A2:A10)))

Excel screenshot showing how to standardise the text using PROPER()

Example 2: filtering financial data

You have a transaction dataset and need to extract all transactions relating to marketing expenses.

Excel screenshot showing a dataset of transactions, with columns for date, customer, department, description and amount

Before dynamic arrays: We could apply a filter to the data, then filter column C to only show ‘Marketing’

After dynamic arrays: We can apply just one formula to achieve this:

=FILTER(A1:E16,C1:C16=“Marketing”)

Excel screenshot showing how, with dynamic arrays, one formula can, for example, filter for all the marketing transactions with =FILTER(A1:E16,C1:C16=“Marketing”)

This returns only the rows that meet the criteria, so there’s no need to apply manual filters, or copy and paste. This also leaves our original data untouched.

To SORT by Customer (alphabetically): =SORT(FILTER(A1:E16,C1:C16=“Marketing”),2,1)

This sorts by the second column (i.e. Customer) in ascending order (1).

Excel screenshot showing how, with dynamic arrays you can both filter and sort, in this case using To SORT by Customer (alphabetically): =SORT(FILTER(A1:E16,C1:C16=“Marketing”),2,1)

Bonus: The department can also be linked to a cell (containing a pick list), e.g. G1:

Excel screenshot showing how the department can also be linked to a cell (containing a pick list), e.g. G1. Now the filter formula will automatically update as the value in cell G1 is edited

Now the filter formula will automatically update as the value in cell G1 is edited.

Why this is important and useful in accounting:

  • Quickly analyse categories
  • Extract audit samples
  • Build dynamic management reports

Why this is important and useful in accounting:

  • Quickly analyse categories
  • Extract audit samples
  • Build dynamic management reports

Example 3: creating accounting periods (SEQUENCE)

Need a list of monthly reporting dates?

=SEQUENCE(12,1,DATE(2026,1,1),30)

A list of 12 Dates, in one column, starting from 01/01/2026 and each increasing by 30 days (approximate monthly intervals). No need for dragging or Fill Series.

Excel screenshot showing how to create sequences using dynamic arrays. In this case, it is generating dates for accounting periods

Want dates from 1–31 January 2026?

=SEQUENCE(31,1,DATE(2026,1,1),1)

31 rows, one column, starting from 01/01/2026, increasing by one (day)

Or dates for Q1 2026, every other week?

=SEQUENCE(7,1,DATE(2026,1,1),14)

Seven rows, one column, starting from 01/01/2026, increasing by 14 (days)

Why this is important and useful in accounting:

  • Automate reporting timelines
  • Standardise period structures
  • Avoid manual date errors (number of days in a month or leap years)

Example 4: dynamic financial reports

You can combine functions to create powerful, automated outputs.

For example, show a sorted list of unique suppliers for a selected cost centre:

=SORT(UNIQUE(FILTER(A2:A16, B2:B16=F1)))

Excel screenshot showing how you can combine functions to create powerful, automated outputs. In this case, it is showing a sorted list of unique suppliers for a selected cost centre

This single formula:

  • Filters relevant transactions
  • Removes duplicates
  • Sorts the results
  • Updates automatically

Why this is important and useful in accounting:

This replaces multiple steps typically done manually or via pivot tables.

We can also take this a step further by filtering for invoices over a specific value (linked to cell I1) as well as cost centre:

=SORT(UNIQUE(FILTER(A2:D16, (B2:B16=H1)*(D2:D16>=I1))))

Excel screenshot showing how dynamic financial tables can replace multiple steps typically done manually or via pivot tables. This example this a step further by filtering for invoices over a specific value (linked to cell I1) as well as cost centre

Here, users can select the cost centre in H1 (B2:B16=H1) AND invoice value in I1 (D2:D16>=I1), and the relevant data will automatically appear in the table below.

Why accountants will love dynamic arrays

  • Efficiency: Reduce time spent preparing data
  • Accuracy: Eliminate errors from copying formulas
  • Auditability: Clear, single-point logic instead of scattered formulas
  • Scalability: Works just as well on 100 rows as 100,000

Quick tips

  • Dynamic arrays are available in Microsoft 365 and Excel Online
  • Use Excel Tables where possible to make the formulas easier: =UNIQUE(Table1[Customer])
  • If results ‘spill’ into existing data in your sheet, Excel will show a #SPILL! error. This means there is not enough space for Excel to ‘spill’ the results, so it won’t show any data at all. Clear the data in its way and the formula will work as normal.

Conclusion

Dynamic arrays are one of the most impactful improvements in Excel for anyone working with data – particularly in accounting, where accuracy and efficiency are critical.

Start with a simple formula like: =UNIQUE(A:A) in your own data today. Then you can combine functions as confidence grows.

Whether you’re analysing transactions, reviewing spend or preparing reports, dynamic arrays can significantly reduce manual effort.

Once you see the benefit, you’ll quickly realise how many manual processes can be replaced with a single, dynamic solution.

QUIZ TIME

Test your knowledge

Roll over the buttons to find the green correct answer or click on the buttons to find the correct answer

1

What is the main benefit of dynamic arrays?

A They improve Excel formatting
B They allow one formula to return multiple results
C They only work with pivot tables
D They reduce file size

2

Which function would you use to extract transactions for a specific account?

A UNIQUE()
B SEQUENCE()
C FILTER()
D SORT()

3

What does the #SPILL! error mean?

A The formula is incorrect
B Excel has run out of memory
C There is not enough space for the results *
D The data is duplicated
Back to the top
Back to contents
Back to section

The Association of Accounting Technicians. 30 Churchill Place, London E14 5RE. Registered charity no.1050724. A company limited by guarantee (No. 1518983).