How to use IF and TODAY to flag overdue invoices

This checks each due date against today and marks anything in the past as Overdue. It keeps itself up to date every time you open the file.

The formula

=IF(B2<TODAY(),"Overdue","OK") in column C

What each part does

B2<TODAY()
The test: is the date in B2 earlier than today? TODAY() is always the current date, so this stays right every day.

How it works, and what to watch for

TODAY() refreshes on its own each time the workbook opens, so the flags are always current without you lifting a finger.

For the version that fills the row red, this same test goes into Conditional Formatting rather than a cell. Lock the column with a dollar sign so the whole row lights up, not just one cell.

If everything shows as Overdue, your dates are probably text rather than real dates. A real date sits to the right of the cell; text clings to the left.

Questions

How do I turn the overdue rows red?

Select your data, then Home > Conditional Formatting > New Rule > Use a formula, and enter =$B2<TODAY() with B as your date column. Set the fill to red and every overdue row colours itself.

How do I show the days left instead of a label?

Use =B2-TODAY(), and format the answer as a plain number rather than a date.

The example sheet

Invoice Due date Status
INV-1001 2026-02-10
INV-1002 2027-01-20
INV-1003 2026-06-30

If this helped, these are close by

More on IF, and every walkthrough that uses it.

Settings: separator, Excel version

Argument separator

Set by your computer's language, not by the file. A frequent cause of a correct-looking formula being rejected.

Excel version

XLOOKUP, IFS, TEXTBEFORE and TEXTJOIN need Microsoft 365 or 2021; older versions return #NAME? instead. Choosing the older one switches every walkthrough to a formula that works there.