Google Sheets: Compare Date to Today — A Practical Guide
Learn how to compare dates against today in Google Sheets using TODAY(), IF, and date functions. Practical formulas, examples, and tips for students and professionals to track deadlines, schedules, and age calculations.

To compare dates with today in Google Sheets, use TODAY() to obtain the current date and compare it to your date cells with simple operators. For example, A2=TODAY() checks if a date equals today, while A2<TODAY() or A2>TODAY() tests if a date is before or after today. This approach scales from single cells to ranges with COUNTIF, FILTER, or ARRAYFORMULA.
Introduction: google sheets compare date to today and why it matters in practice
In the real world, keeping deadlines, milestones, and schedules aligned with today’s date is a common task in Google Sheets. Whether you’re a student tracking assignment due dates, a professional overseeing project timelines, or a business owner managing a calendar-based budget, the need to compare a date to today is a recurring requirement. According to How To Sheets, a well-structured date check reduces manual errors and helps you automate status reporting. This guide walks you through reliable formulas, edge cases, and practical examples so you can implement date comparisons confidently in Google Sheets. By the end, you’ll be able to answer questions like “Is this date in the past?” or “Which items are due today?” with crisp, maintainable formulas.
=TODAY() // returns the current dateWhy this matters: when dates are dynamic (changing daily), static hard-coded dates quickly become stale. The TODAY() function gives you a live anchor that you can use with comparisons to power dashboards, reminder systems, and conditional formatting.
Basic today comparison and equality checks
The simplest scenario is checking whether a date in a cell matches today. You can use a direct equality test or wrap it in a descriptive IF statement. Here are common patterns:
// Basic equality check
=A2=TODAY()
// Human-friendly result
=IF(A2=TODAY(), "Today", "Not today")// Equality with explicit date formatting (robust to text dates)
=TEXT(A2,"yyyy-mm-dd")=TEXT(TODAY(),"yyyy-mm-dd")Line-by-line:
- A2=TODAY() compares the serial date value in A2 to today’s serial date.
- IF returns a readable label, useful for dashboards.
- TEXT(...) comparisons guard against text dates by normalizing formats.
Handling dates before or after today
Beyond equality, many use cases require knowing if a date is before or after today. The comparison operators < and > work directly on date serials. Use them inside IF or IFS for multi-way logic:
// Past or today
=IF(A2<=TODAY(), "Past or Today", "Future")
// Past, today, and future in three branches
=IFS(A2<TODAY(), "Past", A2=TODAY(), "Today", A2>TODAY(), "Future")Variations: you can combine with CONCAT or SWITCH for more nuanced labels. When dates are inputs from users, validate with data validation rules to prevent invalid strings from entering the date column.
Working with date-time values and text dates
If your dates include time or arrive as text, strip the time portion or convert text to date before comparing:
// Remove time component and compare
=INT(A2)=TODAY()
// Convert text to date (robust for mixed inputs)
=DATEVALUE(A2)=TODAY()If your locale uses a non-ISO date format, DATEVALUE can help, but locale-aware parsing matters. Always test with representative samples to ensure consistency across sheets and users. In the How To Sheets workflow, define a canonical input format to minimize surprises during data imports.
Counting and filtering dates relative to today
When you need to count or filter dates relative to today, use COUNTIF or FILTER with TODAY() as a dynamic threshold:
// Count dates today or later
=COUNTIF(B2:B100, ">="&TODAY())
// Filter to upcoming dates
=FILTER(A2:A100, A2:A100>=TODAY())These patterns scale from small worksheets to large datasets. For performance on very large ranges, prefer FILTER over multiple IFs, and avoid volatile functions inside array formulas except when necessary. As you gain comfort, combine with QUERY for more advanced constraints.
Conditional formatting: visual cues for dates relative to today
Conditional formatting helps you see at a glance which rows are due today, overdue, or upcoming. Use a custom formula and apply it to the entire date column or the relevant range:
// Rule: date is today
Custom formula is: =A2=TODAY()
Formatting: fill color yellowYou can add two more rules for past dates (red) and future dates (green).
Implementation tips: anchor the column with absolute references as needed (e.g., $A2) and ensure the Apply range covers all rows you’re analyzing. In Google Sheets, CF rules are per-sheet and can be reordered if multiple conditions apply.
Advanced patterns: using ARRAYFORMULA and QUERY with TODAY()
To process entire columns without dragging formulas, use ARRAYFORMULA or QUERY. These are powerful for reports and dashboards that show status for every row.
// Mark status for each date in A2:A
=ARRAYFORMULA(IF(A2:A="",, IF(A2:A=TODAY(),"Today", IF(A2:A<TODAY(),"Past", "Future"))))
// Retrieve only dates that match today
=QUERY(A2:A, "select A where A = date '"&TEXT(TODAY(), 'yyyy-MM-dd')&"'", 0)Note: ARRAYFORMULA can slow down very large sheets; use it judiciously and consider breaking into chunks or using FILTER for dynamic subsets. The patterns shown here are foundational for scalable date comparisons across teams.
Common pitfalls and best practices
Dates can trip you up if times sneak in, or if inputs are text instead of true dates. Always normalize inputs before comparison and test edge cases (today, yesterday, tomorrow).
// Normalize to date-only when a time component might exist
=INT(A2)=TODAY()Practical tips:
- Prefer TODAY() over hard-coded dates for dynamic calendars.
- Use DATEVALUE or VALUE to convert text dates, but verify locale settings.
- Keep a canonical date format in your sheet to avoid mismatches across users.
In summary, consistent input formats and simple today-based logic form the backbone of reliable date comparisons in Google Sheets. The How To Sheets team recommends establishing a small, reusable template for any date-driven project to minimize repeated work.
Steps
Estimated time: 20-40 minutes
- 1
Prepare your data and identify the date column
Open your Google Sheet and locate the column that contains dates you want to compare with today. Ensure the dates are stored as proper date values, not plain text. If your sheet has multiple date formats, standardize them first to avoid inconsistent comparisons.
Tip: Create a small sample range (e.g., A2:A10) to test your formulas before applying them to a full dataset. - 2
Choose your comparison approach
Decide whether you need to check equality, past vs future, or a range-based condition. For simple checks, use A2=TODAY() or A2<TODAY(). For ranges, consider COUNTIF or FILTER with TODAY().
Tip: Start with equality tests to confirm basic behavior, then expand to time-based or range-based logic. - 3
Implement formulas in a new helper column
In a new column, enter the chosen formula and fill it down. For example, in B2 enter =IF(A2=TODAY(),"Today", IF(A2<TODAY(),"Past","Future")) and copy down. This keeps your original dates intact while showing status.
Tip: Label your helper column clearly (e.g., Status or DateStatus) to keep sheets readable. - 4
Add optional visual cues with conditional formatting
Set up conditional formatting rules to highlight dates relative to today. For instance, rule: Custom formula is =A2=TODAY() with a distinctive color, plus additional rules for past and future.
Tip: Order rules by specificity and test on a few rows before applying to the entire range.
Prerequisites
Required
- Required
- Basic knowledge of date formatting and simple formulas (TODAY(), IF)Required
- A test sheet with a column of dates to compareRequired
- Internet access to use Google SheetsRequired
Optional
- Familiarity with conditional formatting for visual cuesOptional
Keyboard Shortcuts
| Action | Shortcut |
|---|---|
| Insert today's date in a cellPuts the current date in the active cell. | Ctrl+; |
| Fill down a formula or valueCopies the content from the cell above into the selected range. | Ctrl+D |
| Paste without formattingPastes only the value, hiding existing formatting. | Ctrl+⇧+V |
| Copy a formula down without altering referencesKeeps the same formula in multiple cells when extending down a range. | Ctrl+↵ |
| Apply custom date-based conditional formattingOpen conditional formatting and set a custom formula like =A2=TODAY() | Ctrl+⇧+L |
FAQ
What does TODAY() return in Google Sheets?
TODAY() returns the current date as a date serial number. It updates automatically when the spreadsheet is opened each day. Use TODAY() as a dynamic reference in comparisons like A2=TODAY() or A2<TODAY().
TODAY() gives today’s date and updates daily, so you can compare dates dynamically.
How can I compare a date that's stored as text to today?
Convert the text to a date with DATEVALUE or VALUE before comparing. For example, DATEVALUE(A2)=TODAY() works if A2 contains a recognizable date string. Ensure your locale settings align with the date format.
If the date is text, convert it with DATEVALUE before comparing to today.
Can I highlight dates relative to today using conditional formatting?
Yes. Create a rule with a custom formula such as =A2=TODAY() to highlight dates that are today, and add additional rules like =A2<TODAY() for past dates. Apply the range to cover all relevant cells.
You can color-code dates by comparing them to today for quick visual cues.
What should I watch out for with time components in dates?
Dates may include time; this can break equality checks. Use INT(A2) or DATEVALUE to strip the time portion before comparing. Always test with edge cases like midnight and end-of-day values.
Time parts can ruin simple date checks, so normalize dates first.
Is there a recommended approach for large datasets?
Prefer FILTER or ARRAYFORMULA with TODAY() for scalable results rather than copying formulas down many rows. Monitor performance and consider breaking data into chunks if you notice slowdowns.
For big sheets, use dynamic array formulas instead of filling down many cells.
The Essentials
- Use TODAY() to anchor all date comparisons
- Normalize inputs to avoid time components causing mismatches
- COUNTIF and FILTER enable scalable date-range checks
- Conditional formatting provides quick visual cues for dates relative to today