In Excel: compute days outstanding with =TODAY()-InvoiceDate, then band that number with IFS into 0-30, 31-60, 61-90 and 90+.
On this page7
Breakdown: 0 years · 11 months · 30 days
Need it as an auditable file?
Ships inside the linked template — formula-driven, unlocked, audit-ready.
What this does
An ageing analysis turns a list of unpaid invoices into a statement of how long the money has been owed and how much sits in each time band. It is two columns of work: a days-outstanding number, and a bucket label derived from it. A PivotTable over the bucket column then totals the amount per band, which is the figure a credit-control meeting actually runs on. Keep the inputs visible and clearly labelled and the whole thing stays auditable — anyone who opens the file later, including you, can see at a glance exactly what feeds the result and change one assumption without hunting through the formula. The difference between a quick fix and a sheet you can trust is the extra minute you spend validating “aging bucket formula in excel”. Start on a copy or a tiny sample, keep the affected formula visible, and compare the result with the tool above before you touch the real workbook. When a formula is involved, keep the inputs labelled beside it, reference cells instead of typing values, and apply number formatting only after the result checks out. The point is a calculation you can defend to a CFO or an auditor, but the practical win is that someone else can open the file and understand what happened without asking you.
A worked example
B2 holds the invoice date 2026-06-02. Run on 2026-08-14, C2 =TODAY()-B2 returns 73 once the cell is formatted as a number rather than a date — and 74 the next morning, because TODAY() moves with the calendar. D2 =IFS(C2<=30,"0-30",C2<=60,"31-60",C2<=90,"61-90",TRUE,"90+") returns 61-90, and a PivotTable with D as rows and the amount as values shows 18,400 sitting in that band. Cash collection is prioritised by band, so the bucket boundaries decide which customer gets called this week — and a mis-formatted days column hides the whole picture behind a column of 1900 dates. One habit worth forming early: name the cells that hold your inputs, so the formula reads in plain language instead of a string of cell addresses. A reviewer — or you in three months — can then follow the logic without decoding what B7 and D2 were supposed to mean, which is most of what makes a sheet maintainable.
In Google Sheets
Everything above works in Google Sheets too. Excel and Sheets share the formula syntax used here; only the surrounding menus are arranged differently. That portability is deliberate — learn it once and it follows you between the two tools and across Windows and Mac. The aim was to get you unstuck fast and leave you a little more capable than a copy-paste would. The answer is at the top, the tool proves it, and the detail above shows why it holds — so the next time a colleague asks, you can answer without reaching for search. The short version of “aging bucket formula in excel”: the answer is at the top of this page, the tool proves it on your own numbers, and the sections above explain why it holds so the next variation does not stump you. Excel rewards people who reference cells instead of typing values and who keep inputs separate from formulas, because that is what makes a result you can audit months later. Build it once, deliberately, with the live tool as a check, and you convert a one-off lookup into a reusable skill — which is the whole point of learning the why and not just the what.
Common mistakes
- Leaving the days column formatted as a date, so 73 displays as a day in March 1900.
- Not saying whether the report ages from the invoice date or the due date — the two produce different bands for the same ledger.
- Hard-coding a report date instead of
TODAY(), which quietly stops updating. - Writing overlapping bucket boundaries such as <=30 and >=30, which puts day 30 in whichever band the formula happens to test first.
Frequently asked questions
What is the formula for days outstanding?
=TODAY()-InvoiceDate, with the result cell formatted as a number.
How do I age from the due date instead?
Use =TODAY()-DueDate. Negative results mean the invoice is not due yet, which is worth a separate "not due" band.
IFS is not available in my version.
Use nested IF, or =LOOKUP(C2,{0;31;61;91},{"0-30";"31-60";"61-90";"90+"}), which reads the largest boundary not exceeding the value.
Why do the numbers change every day?
TODAY() is volatile and recalculates whenever the workbook does. Paste the days column as values to freeze a report.