How to Calculate Aging in Excel

There are two ways to “calculate aging in excel”: the quick way you copy and the durable way you understand. This page gives you both. The exact Excel answer is above with a tool to test it; below, we build the small mental model that makes the fix stick, so the next variation of the same problem solves itself.

Exact answer

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
ƒxDate Difference CalculatorLive
Days between
364

Breakdown: 0 years · 11 months · 30 days

Workdays (Mon–Fri, NETWORKDAYS)
261
=B2A2 · =NETWORKDAYS(A2,B2)
=IFS(C2<=30,"0-30",C2<=60,"31-60",C2<=90,"61-90",TRUE,"90+")
Ctrl+CthenCtrl+Shift+V+Cthen+Ctrl+VPaste values · WindowsMac

Need it as an auditable file?

Ships inside the linked template — formula-driven, unlocked, audit-ready.

View template

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. Most people learn this as a sequence of clicks and forget it by next week; learning it as a pattern instead is what lets you apply it to the next, slightly different version of the problem without starting from scratch. That is the difference this page is trying to make. For “calculate aging in excel”, the reliable version is a short checking loop, not just the first command that appears to work. Run it on a deliberately small range first, watch how the affected cells change, and only then apply the same setup to the full sheet. 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. That is what makes a calculation you can defend to a CFO or an auditor useful in real work: repeatable, auditable, and not dependent on memory or luck.

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. If there is any chance you will reuse this, drop it into a small template tab right now: a labelled input area on the left and the formula beside it, checked once against the tool above. Next time the same question comes up, the answer is a single paste away instead of a rebuild from memory.

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. Keep this page bookmarked for the next time the same question comes up. Better still, rebuild the example once in your own sheet — doing it yourself, with the tool above to check against, is what turns a copied formula into a technique you own. Here is the takeaway for “calculate aging in excel”: copy the answer if you are busy, but if you have a spare few minutes, rebuild the example in Excel yourself with the tool above open beside it. That single pass — type it, run it, watch the result move when you change an input — is what turns a formula you found into a technique you trust. Keep your inputs labelled and referenced, never hard-coded, and the same sheet stays correct and auditable as it grows. Done that way, you will not need to look this up again, and you will be the person others ask.

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.