What you will build

Create a Flag column that automatically marks tasks whose due date has passed and whose status is not complete, while ignoring blank due dates. The lesson uses fictional data so every step can be reproduced safely.

Learning objective

Use ARRAYFORMULA, IF, and TODAY to evaluate multiple rows from one anchor cell, understand how the condition arrays align row by row, and verify the result when a status changes.

Prepare the sample data

Open the exact source workbook below or make your own copy. The Example tab contains the Task, Due, and Status table. Keep the source workbook unchanged and do the exercise on your copy.

HANDS-ON PRACTICE

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.

Make a Google Sheets copy (access required) ↗View original

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.

The practical-formulas-08 source workbook in Google Sheets with the Example tab selected and the full Task, Due, and Status table visible.

Open the exact source workbook in Google Sheets ↗

Work through the example

Step 1: On your copy, open Example. Confirm B2:B4 are real date values and C2:C4 use the statuses Done, Working, and Planned. Enter Flag in D1.

The _result workbook before the formula is entered, showing Task, Due, Status, and the Flag header in D1.

Step 2: Select D2 and enter the formula below once. This is a spilling array formula: its results expand through D2:D4 automatically, so do not drag the fill handle or copy the formula down.

Formula to try

In Example!D2, enter the formula below and keep D2:D4 clear beforehand so the spill range is not blocked.

=ARRAYFORMULA(IF((B2:B4<>"")*(B2:B4<TODAY())*(C2:C4<>"Done"),"Overdue",""))
The _result workbook with Example!D2 selected; the formula bar shows the complete ARRAYFORMULA and the spill result is blank for Brief, Overdue for Design, and Overdue for QA.

Checkpoint

TaskDueStatusFlag
Brief2026-09-15Done
Design2026-09-20WorkingOverdue
QA2026-10-01PlannedOverdue

Expected result at the 2026-10-05 audit: Brief has no flag because it is Done; Design and QA display Overdue.

Common mistakes and fixes

If a task is not flagged as expected, confirm Due is a real date value and that the completed status is spelled exactly Done. TODAY uses the spreadsheet current date, so the result also depends on calculation time.

Independent practice

Temporarily change Design from Working to Done and confirm D3 becomes blank; then restore Working and confirm D3 returns to Overdue.

Key takeaways

  • ✓Use one ARRAYFORMULA in D2 to calculate overdue flags for multiple rows.
  • ✓The conditions require a nonblank Due, a Due earlier than TODAY, and a Status other than Done.
  • ✓Brief is not flagged because it is Done; Design and QA are Overdue with the current sample data.
  • ✓The B2:B4 and C2:C4 arrays must have compatible dimensions so elements align by row.
  • ✓Do not drag or copy the formula into D3:D4 because the result already spills from D2.
QUICK CHECK

Check your understanding

Answer four questions about the practice sheet.

1. Why does Brief not display Overdue?
2. Where is the formula entered?
3. What does B2:B4<TODAY() test?
4. What should happen to D3 if Design is changed to Done?

Continue learning

Previous lesson: Calculate working days. Next lesson: Compare two lists.