The Excel TODAY function, explained interactively.
TODAY returns the current date as an Excel date value. No arguments, no options — the simplest signature in the whole function library. The usefulness comes from what you put around it: days-until- deadline tables, rolling age calculations, dashboard freshness flags, all driven by a single volatile cell that updates every day at midnight.
How to use TODAY
- In any cell, type
=TODAY(). The parentheses are required even though there are no arguments — leave them empty. - Press Enter. Excel displays today’s date. If it shows a number like
46134, the cell is formatted as Number — change it to Date in Format Cells. - For days-until or days-since arithmetic, subtract:
=A2 - TODAY()for a future date,=TODAY() - A2for a past date. Both return an integer count of days. - For a static “date inserted today” that doesn’t update tomorrow, use
Ctrl+;(Windows) orCmd+;(Mac) instead — that’s a shortcut for typing the literal date, not a function call.
In the demo below, =B2 - TODAY() drives the Days-until column. Overdue tasks show a negative number in red; today’s task shows 0 in amber; upcoming tasks show positive days in teal. In your own sheet, those values update automatically every day.
| A | B | D | |
|---|---|---|---|
| 1 | Task | Due date | Days until due |
| 2 | Ship auth fix | 2026-04-15 | -5 |
| 3 | Write docs | 2026-04-19 | -1 |
| 4 | Review PR | 2026-04-20 | 0 |
| 5 | Plan Q2 roadmap | 2026-04-27 | 7 |
| 6 | Launch v2 | 2026-05-15 | 25 |
=B2 - TODAY(). The result is how many days until each task’s due date: negative means overdue, 0 means due today, positive means upcoming. This demo pins TODAY() to 2026-04-20 for consistency; in your own sheet, TODAY returns the actual current date and the numbers update automatically every day.TODAY syntax and arguments
Zero arguments — the simplest signature in Excel. See Microsoft’s official TODAY reference for the canonical specification.
=TODAY without them returns the function reference, not a value. Output is a date serial number formatted as a date; the internal value is an integer representing the number of days since 1900-01-01 (Excel’s date epoch).TODAY examples
Four patterns that cover most real-world TODAY use.
Example 1: TODAY — days until a deadline
The canonical case. Subtract today from a future date to get the days remaining.
Returns a positive integer for future dates, negative for past, 0 for today. Combine with IF or IFS for status labels: =IF(A2-TODAY()<0, "Overdue", "On track"). No date parsing needed — Excel handles the arithmetic natively.
Example 2: TODAY — age from a birthdate
Rolling age in completed years. DATEDIF handles the birthday-not-yet-this-year edge case so you don’t have to.
Returns the number of completed years — someone born on April 21 will turn older tomorrow, not today. For decimal age, =(TODAY() - A2) / 365.25. The DATEDIF function is undocumented in recent Excel versions but still works in all releases.
Example 3: TODAY — freshness flag for a dashboard
Compare a data refresh timestamp against TODAY to flag stale rows. Combined with conditional formatting, a glance shows which parts of a report need updating.
Flags rows whose refresh date is more than a week ago. Replace 7 with any threshold. Because TODAY is volatile, the flag updates automatically as days pass — no need to re-run the report formulas.
Example 4: TODAY — static vs volatile date insertion
Two ways to put today’s date in a cell, with very different behaviour when the file is opened tomorrow.
Use TODAY() for a rolling “days since” calculation. Use Ctrl+; for a “signed on this date” timestamp or any audit field that should never change. Same appearance in the cell; wildly different behaviour at the next open.
Common TODAY errors and fixes
Four failure modes, each with what to check and how to recover.
TODAY shows a number, not a date
Cause: the cell is formatted as Number or General. Excel stores dates as serial numbers internally; the format is what turns 46134 into 2026-04-20.
Select the cell → Format Cells → Date → pick a format. Or use the ribbon: Home → Number format → Short Date / Long Date. Keyboard shortcut: Ctrl+Shift+# (Windows) applies the default date format in one keystroke.
TODAY changed and broke historical data
Cause: TODAY is volatile. A cell that was showing “inserted April 15” yesterday now shows today’s date — the formula recalcs every time the workbook opens.
For “inserted on” timestamps, never use =TODAY(). Use Ctrl+; to type a static literal, or paste-special-as-value over a TODAY cell to freeze it. In modern Excel, Power Automate or Office Scripts can log immutable insertion dates programmatically.
TODAY works locally but not on a shared file
Cause: different users see different values because TODAY uses each machine’s local clock. A colleague in a different time zone may get a date one day apart from you.
For cross-timezone consistency, anchor to UTC or a specific locale. There’s no built-in TODAY-UTC; in Excel 365 with Power Query, pull the date from a web service. For most dashboards, local-time TODAY is fine and the user’s mental model.
TODAY in a shared workbook feels laggy
Cause: every TODAY cell recalcs on every edit (volatility). With hundreds of TODAY calls driving dashboards, the recalc cost adds up.
Centralise TODAY in a single cell (e.g. $A$1: =TODAY()) and reference $A$1 everywhere else. The dependent cells recalc only when $A$1 changes, which is once per open. Classic pattern for large date-driven workbooks.
TODAY vs NOW, DATE & DAY
Four date functions with overlapping use cases. Pick by whether you want the current date, a specific date, or a component of a date.
| Function | Returns | Args | Volatile? |
|---|---|---|---|
| TODAY | Current date (midnight) | (none) | Yes — recalcs once per day |
| NOW | Current date + time | (none) | Yes — recalcs on every edit |
| DATE | Specific date from y/m/d | year, month, day | No |
| DAY / MONTH / YEAR | Component of a date | serial_number | No |
Rule of thumb: TODAY for rolling “days since” and “days until” arithmetic. NOW only when time-of-day matters (audit logs, race-condition timestamps). DATE to build a specific date from year/month/day integers — especially the month-overflow trick for “last day of month” logic.
TODAY frequently asked questions
6.01How do I insert today’s date in Excel without it changing tomorrow?▸
Use Ctrl+; (semicolon) on Windows or Cmd+; on Mac — a keyboard shortcut that types today’s literal date as a static value. TODAY() is volatile and updates every time the workbook recalcs; the Ctrl+; shortcut inserts the current date once and freezes it. Use TODAY when you want a rolling “today”, Ctrl+; when you want a timestamp.
6.02Does TODAY include the current time?▸
No — TODAY returns a date serial number with the time set to midnight (00:00). For a date-and-time timestamp, use NOW(). TODAY() minus NOW() gives negative fractional days equal to how much of the day has passed, which is sometimes used for “time until midnight” calculations.
6.03Why does TODAY show a number instead of a date?▸
The cell is formatted as General or Number instead of Date. Excel stores dates internally as serial numbers (days since 1900-01-01); TODAY returns that number, but normally the cell’s date format renders it as a calendar date. Select the cell, Format Cells → Date, pick a format, and the number resolves to readable text.
6.04Can I use TODAY to calculate age from a birthdate?▸
Yes — =DATEDIF(A2, TODAY(), "Y") returns the completed years between a birthdate in A2 and today. DATEDIF handles the year/month boundary correctly (leap years, birthday-not-yet-occurred- this-year edge cases). For decimal years, use (TODAY()-A2)/365.25.
6.05What’s the difference between TODAY and NOW?▸
TODAY returns just the date with time set to 00:00. NOW returns the date plus the current time down to the second. If you don’t care about time of day, TODAY is cleaner because its value only changes once per day, cutting down on volatile recalcs. Use NOW for audit logs and high-resolution timestamps.
Microsoft Excel is a registered trademark of Microsoft Corporation. Google Sheets is a trademark of Google LLC. Formula Gym is not affiliated with, endorsed by, or sponsored by either company.