Find Overdue Unpaid Invoices Automatically in Google Sheets
Find unpaid invoices whose due date is before today.
Download practice data · CSVStart the exerciseWatch the tutorial
Watch on YouTube · ShortTry it yourself
Import at A1 and enter the formula in F2. Set column C to Date if necessary. TODAY makes the result depend on the current date: on 17 October 2026, invoices 101, 104 and 107 qualify. If no rows match, FILTER returns #N/A.
=FILTER(A2:D9,B2:B9="Unpaid",C2:C9<TODAY())Detailed steps
- Two conditions. One useful list.
Look at this example. Some invoices are paid. Some are unpaid, but their due dates are still in the future. We only want rows that pass both checks.
- 1. Keep the source intact
Our source is A two through D nine. Column B contains payment status, and column C contains real spreadsheet dates. Copy the headers to an empty area, then click F two.
- 2. Build the FILTER formula
Start with FILTER and the full source range. Add column B equals Unpaid in quotation marks. Then add column C less than TODAY, with empty parentheses. Keep every range the same height.
- 3. Read the result
Press Enter. In this example, three invoices qualify: one oh one, one oh four, and one oh seven. Paid invoices and future due dates stay out of the result.
- Keep the list useful
When a payment status changes in the source, FILTER recalculates the output. TODAY uses the current date when the sheet recalculates. This is a spreadsheet list, not an automatic payment reminder.
- Three checks before you use it
Use real dates, not text that only looks like a date. Keep the output area clear. Extend all the ranges when you add more invoices. If nothing matches, FILTER returns an N A error; that does not mean a payment is missing.
- Your next spreadsheet problem?
You can use the same two-condition idea for tasks or orders. Which list would you like to automate next? Tell me in the comments.
Preview the input data
| Invoice | Status | Due date | Amount (USD) |
|---|---|---|---|
| INV-101 | Unpaid | 2026-10-01 | 240 |
| INV-102 | Paid | 2026-10-03 | 180 |
| INV-103 | Unpaid | 2026-11-01 | 320 |
| INV-104 | Unpaid | 2026-10-05 | 450 |
| INV-105 | Paid | 2026-10-04 | 90 |
| INV-106 | Unpaid | 2026-11-15 | 160 |
| INV-107 | Unpaid | 2026-10-08 | 210 |
| INV-108 | Paid | 2026-10-02 | 300 |
How to open the CSV
In a blank Google Sheet choose File → Import → Upload and select the downloaded CSV. Use comma as the separator. Start at A1 unless the exercise specifies another location. CSV contains input data; add formulas and controls using the steps above. Files are hosted directly here and require no shared personal Drive document.
Fictional demo data. Formulas use English function names and commas between arguments. Other spreadsheet locales may require semicolons. Check date recognition after importing.