Excel stores dates as numbers, which is why date math works — and why a handful of date functions cover most of what you'll ever need. Here are the essential ones with practical examples.
How Excel sees dates
Under the hood, Excel stores each date as a serial number (day 1 is January 1, 1900). That's why you can subtract one date from another to get the days between them, and why dates sometimes appear as a number like 45000 when formatting is lost. Understanding this makes date math intuitive: dates are just numbers wearing a date format.
TODAY and NOW
TODAY() returns the current date; NOW() returns the current date and time:
=TODAY()
=NOW()
Both update automatically whenever the sheet recalculates. Use them for things like age calculations, days-until-deadline, or timestamps.
Example — days until a deadline in A1:
=A1-TODAY()
Extracting parts of a date
YEAR, MONTH, DAY pull out components:
=YEAR(A1)
=MONTH(A1)
=DAY(A1)
Useful for grouping data by month or year, or building custom date logic.
Building a date
DATE(year, month, day) constructs a date from parts:
=DATE(2026, 7, 20)
Handy when you have year/month/day in separate cells and need to combine them into a real date.
DATEDIF: the hidden gem
DATEDIF calculates the difference between two dates in years, months, or days. It's oddly undocumented in Excel's function list but works reliably:
=DATEDIF(start_date, end_date, unit)
The unit is a text code: "Y" for complete years, "M" for months, "D" for days.
Example — someone's age from their birthdate in A1:
=DATEDIF(A1, TODAY(), "Y")
This is the cleanest way to calculate age or tenure in whole years.
Adding and subtracting time
Simple day math: just add or subtract numbers.
=A1+30
adds 30 days to the date in A1.
EDATE adds whole months (handling month lengths correctly):
=EDATE(A1, 3)
adds 3 months.
EOMONTH returns the last day of a month, useful for month-end reporting:
=EOMONTH(A1, 0)
gives the end of A1's month.
WORKDAY and NETWORKDAYS
For business-day calculations that skip weekends:
- NETWORKDAYS(start, end) counts working days between two dates.
- WORKDAY(start, days) finds a date a number of working days out.
Both can take a list of holidays to exclude as well.
Common pitfalls
Dates stored as text. If date functions error or dates won't calculate, the "dates" may be text, not real dates (they'll left-align instead of right-align). Convert them with DATEVALUE or by fixing the source format.
Regional formats. Date formats (MM/DD vs DD/MM) depend on system settings, which can cause confusion with imported data.
The takeaway
Most date work comes down to a few functions: TODAY/NOW for the current moment, YEAR/MONTH/DAY to extract parts, DATE to build dates, and DATEDIF for differences like age and tenure. Remember that dates are really numbers, and the math stops feeling mysterious.