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
TRUEif the input is a valid date or can be coerced into a date by the spreadsheet locale; returnsFALSEif the value contains invalid syntax, numbers beyond calendar limits, or arbitrary text.
Key Behavioural Characteristics
=ISDATE("2024-12-25")returnsTRUE.=ISDATE("2024-02-30")returnsFALSE(February 30 does not exist in any calendar).=ISDATE("Pending")returnsFALSE.=ISDATE(45292)returnsTRUEif the cell is formatted as a date, butFALSEif 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.