What you will build
Build a small invoice tracker whose Balance and Status are calculated from Amount, Paid, and Due. The lesson uses fictional data so every action can be reproduced without real customer information.
Learning objective
Use two spilling array formulas to calculate remaining balances and flag overdue invoices, understand row-by-row alignment across equal-sized ranges, and verify the result when Paid changes.
Prepare the sample data
Open the exact source workbook below and make a copy for practice. The Example tab contains Invoice, Customer, Amount, Paid, and Due sample data. The source still contains demonstration columns from an earlier setup; on your copy, clean F:H as described in Step 1 before entering the new formulas.
Practice in your own copy
Make your own Google Sheets copy with the same data, formulas, formatting, filter and frozen header. The original remains unchanged.
Sign in to Google. If the original is not publicly shared, download the full workbook and import it into Google Sheets, or paste the example data into your own sheet.
Open the exact source workbook in Google Sheets ↗
Work through the example
Step 1: On your copy, keep A:E as the source data. Clear F2:H4, clear the old headers in G1:H1, keep F1 as Balance, and enter Status in G1. The A:G table is then ready for the two new formulas.
Step 2: Select F2 and enter the Balance formula below once. Its results spill through F2:F4 automatically; do not drag the fill handle or copy the formula down.
Balance formula
=ARRAYFORMULA(C2:C4-D2:D4)Step 3: Select G2 and enter the Status formula below once. Its results spill through G2:G4 automatically; do not drag the fill handle or copy the formula down.
Status formula
=ARRAYFORMULA(IF((F2:F4>0)*ISNUMBER(E2:E4)*(E2:E4<TODAY()),"Overdue",""))Checkpoint
| Invoice | Customer | Amount | Paid | Due | Balance | Status |
|---|---|---|---|---|---|---|
| I-01 | Acme Demo | 500 | 500 | 2026-09-20 | 0 | |
| I-02 | North Demo | 340 | 100 | 2026-10-05 | 240 | |
| I-03 | River Demo | 220 | 0 | 2026-09-25 | 220 | Overdue |
Overdue depends on TODAY at calculation time. In this audit, I-03 is the only invoice that simultaneously has Balance > 0, a valid Due date, and Due earlier than TODAY.
Common mistakes and fixes
If Status is unexpected, confirm Paid is numeric, Due is a real date value, and all condition ranges have the same number of rows. TODAY also means the result can change as the calculation date changes.
Independent practice
Temporarily change D4 from 0 to 220. Confirm F4 changes from 220 to 0 and G4 changes from Overdue to blank; then restore D4 to 0 and verify both results return to their original state.
Key takeaways
- ✓Balance is calculated row by row as Amount minus Paid.
- ✓One ARRAYFORMULA in F2 produces all Balance values: 0, 240, and 220.
- ✓Status is Overdue only when Balance is positive, Due is a valid date, and Due is earlier than TODAY.
- ✓One ARRAYFORMULA in G2 produces all three Status values, so no drag or copy-down step is needed.
- ✓Changing Paid automatically updates both Balance and Status; with the restored sample data, only I-03 is Overdue.
Check your understanding
Answer four questions about the practice sheet.
Continue learning
Previous lesson: Simple CRM spreadsheet. Next lesson: Project timeline.
Comments
No comments yet. Be the first to join the discussion.