Bill — invoice with register

Pro workbook: Invoice, Register, Clients, Items, Setup, Formulas. Sample data, real formulas.

INVOICEInvoice no.2026-037
Fathom Studio BVDate11 Sep
Unit 4, The Foundry, Springfield ST 00000Terms (days)30
[email protected] · +1 000 000 0000Due11 Oct
VAT / tax ID: 00000000
Bill to
ClientNorthwind Bank
Address1 Harbour Row, Springfield ST 00000
Email[email protected]
ReferenceOnboarding redesign — sprint 3
DescriptionQtyUnit priceAmount
Product design, day6950.005,700.00
Engineering, day41,100.004,400.00
Workshop, half day1600.00600.00
Travel (at cost)1212.40212.40
Subtotal10,912.40
5.0%Discount-545.62
20.0%Tax2,073.36
Total12,440.14
Amount due by11 Oct
Payment
Bank: Example Bank · IBAN XX00 0000 0000 0000 · BIC EXAMPLEX · Reference: the invoice number
Thank you. Late payments accrue 2% per month after the due date.
Invoice register
One row per invoice sent. Outstanding, days overdue and the aging buckets are calculated.
Today2026-09-11Type =TODAY() to keep it live
NumberDateClientTotalPaidOutstandingDueDays overdueStatusAgingOutstandingInvoices
2026-0312026-07-02Halden Health8,400.008,400.002026-07-16PaidNot yet due31,690.143
2026-0322026-07-15Northwind Bank12,650.0012,650.002026-08-14Paid1–30 days6,800.001
2026-0332026-07-30Civic Data Trust5,100.005,100.002026-09-13Paid31–60 days0.000
2026-0342026-08-20Tessera Logistics9,900.004,950.004,950.002026-09-19Part paidOver 60 days0.000
2026-0352026-08-20Halden Health6,800.000.006,800.002026-09-038OverdueTotal outstanding38,490.14
2026-0362026-08-28Northwind Bank14,300.000.0014,300.002026-09-27OpenInvoiced this year69,590.14
2026-0372026-09-11Northwind Bank12,440.140.0012,440.142026-10-11OpenCollected this year31,100.00
Next number2026-038
The current invoice's total comes from the Invoice sheet; once sent, overtype it with the number so it stays fixed.
Next number assumes the pattern YYYY-NNN and that this year started at 031 — change the +31 to your starting count.
Clients
Pick a client on the invoice and the address, email and terms fill in from here.
ClientAddressEmailTerms (days)
Northwind Bank1 Harbour Row, Springfield ST 00000[email protected]30
Halden Health22 Ward Street, Springfield ST 00000[email protected]14
Tessera LogisticsUnit 9, Depot Road, Springfield[email protected]30
Civic Data TrustTown Hall Annex, Springfield[email protected]45
Items
Things you sell, with a default price. Pick one on the invoice and the price fills in; overtype it for a one-off.
ItemUnit price
Product design, day950.00
Engineering, day1,100.00
Research, day850.00
Workshop, half day600.00
Design system licence2,400.00
Travel (at cost)0.00
Setup
Tax rate and defaults.
Tax rate20.0%
Default terms (days)30
Set the tax rate to 0 if you don't charge it; the Tax line then shows 0.00 and the total equals the subtotal less discount.
How the formulas work
Every formula in this workbook, in plain words. Nothing is hidden and nothing needs a macro. Formulas are shown without the leading = sign.
WhereFormulaWhat it does
Invoice · Address / Email / TermsINDEX(Clients!$B$5:$B$24, MATCH($B$8, Clients!$A$5:$A$24, 0))Finds the chosen client on the Clients sheet and returns the column beside it. IFERROR shows blank until a client is picked.
Invoice · Unit priceINDEX(Items!$B$5:$B$24, MATCH(A16, Items!$A$5:$A$24, 0))Default price for the item picked from the dropdown. Type a number over it for a one-off price.
Invoice · AmountIF(OR(A16="",C16=""),0,N(C16)*N(D16))Qty × price; empty lines give 0, hidden by the format.
Invoice · Discount / Tax-ROUND(F29*D30,2) / =ROUND((F29+F30)*D31,2)Discount off the subtotal; tax on the discounted amount. Both rounded to cents so the total is what a bank will accept.
Invoice · DueF2+F3Invoice date plus the client's terms.
Register · OutstandingN(D6)-N(E6)Total minus paid.
Register · Days overdueIF(F6<=0,0,MAX(0,$B$3-G6))Days past the due date, only while something is still owed.
Register · StatusIF(F6<=0,"Paid",IF(H6>0,"Overdue",IF(N(E6)>0,"Part paid","Open")))Nested IF in order of certainty: nothing owed → Paid; past due → Overdue; some paid → Part paid; else Open.
Register · Aging bucketsSUMIFS(F6:F205, H6:H205, ">=1", H6:H205, "<=30")Outstanding amounts whose days-overdue fall in the bucket.
Register · Next numberTEXT(YEAR($B$3),"0")&"-"&TEXT(COUNTIF(A6:A205,"2026-*")+31,"000")Counts this year's invoices and formats the next sequence number as YYYY-NNN.