How to Use the ISDATE and DATEVALUE Functions in Google Sheets to Validate Date Strings

Data imported from external CSV files, web forms, and third-party APIs often stores calendar dates as unformatted plain text strings rather than native numerical serial numbers. When text dates are mixed with valid dates, downstream functions such as DATEDIF, VLOOKUP, FILTER, and date sorting fail or return misleading results. The ISDATE and DATEVALUE functions in Google Sheets provide a robust mechanism to inspect, validate, and convert text dates into reliable spreadsheet serial dates.

How Google Sheets Stores and Handles Dates

Google Sheets represents dates internally as sequential whole integers starting from December 30, 1899 (day zero). For instance, January 1, 2024, is stored as the serial integer 45292. When dates are imported as plain strings (such as "2024-05-15" or "15/05/2024"), Google Sheets displays the characters visually, but cannot perform mathematical arithmetic or chronological comparisons until the string is coerced into a serial value.

Syntax and Behaviour of the ISDATE Function

The ISDATE function validates whether a target cell contains a recognisable date or date-compatible value:

=ISDATE(value)
  • value: The cell coordinate, expression, or string to evaluate.
  • Return Value: Returns boolean TRUE if the input is a valid date or can be coerced into a date by the spreadsheet locale; returns FALSE if the value contains invalid syntax, numbers beyond calendar limits, or arbitrary text.

Key Behavioural Characteristics

  • =ISDATE("2024-12-25") returns TRUE.
  • =ISDATE("2024-02-30") returns FALSE (February 30 does not exist in any calendar).
  • =ISDATE("Pending") returns FALSE.
  • =ISDATE(45292) returns TRUE if the cell is formatted as a date, but FALSE if formatted strictly as a plain number.

Syntax and Mechanics of the DATEVALUE Function

While ISDATE acts as a diagnostic boolean check, DATEVALUE performs the active conversion from text to numerical date serial:

=DATEVALUE(date_string)
  • date_string: The string representing a date that Google Sheets parses according to your sheet’s active locale (set under File > Settings > Locale).
  • Output: Returns the integer serial number. Applying date formatting (Format > Number > Date) renders this integer as a human-readable calendar date.

Combining ISDATE with IF and DATEVALUE for Data Sanitisation

In high-volume datasets containing mixed inputs, you can combine ISDATE and DATEVALUE inside an IF statement to cleanly standardise entire columns without producing #VALUE! errors:

=IF(ISDATE(A2), DATEVALUE(TEXT(A2, "yyyy-mm-dd")), "Invalid Date")

To process an entire column dynamically using modern array formulas, wrap the validation logic in MAP and LAMBDA:

=MAP(A2:A100, LAMBDA(cell, 
  IF(ISBLANK(cell), "", 
  IF(ISDATE(cell), DATEVALUE(cell), "Check Format"))
))

Handling Regional Date Locale Conflicts

A common pitfall occurs when parsing dates formatted in US style (MM/DD/YYYY) within a UK or European locale sheet expecting (DD/MM/YYYY):

Input String UK Locale (DD/MM/YYYY) US Locale (MM/DD/YYYY) Safe Universal Format
"05/08/2024" 5 August 2024 8 May 2024 Ambiguous
"15/08/2024" 15 August 2024 #VALUE! (Month 15 invalid) Requires Locale Alignment
"2024-08-15" 15 August 2024 (ISO 8601) 15 August 2024 (ISO 8601) Recommended Format

When working with international teams, standardising date strings into ISO 8601 format (YYYY-MM-DD) before calling DATEVALUE prevents regional parsing ambiguities and ensures seamless interoperability across Google Sheets workbooks.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.