← Functions
todaydatefunctionsbeginner

Excel TODAY Function

TODAY returns the current date in Excel and updates automatically whenever the workbook opens or recalculates.

TODAY returns the current date. It takes no arguments, updates every time you open or recalculate the workbook, and returns a value based on your computer's system clock, not a fixed snapshot of the day you first entered the formula.

Available in: Excel 365 and all earlier versions. TODAY behaves identically across every version of Excel.

Syntax

=TODAY()
ParameterRequiredDescription
(none)N/ATODAY takes no arguments. You still have to type the parentheses, with nothing inside them, or Excel won't recognize it as a function. Type anything inside them, like =TODAY(1), and Excel returns a #VALUE! error because it expects zero arguments.

A volatile function recalculates every time you open, edit, or refresh the worksheet, not just when its own inputs change. TODAY is one of the most common examples.

Basic Example

You're tracking a list of invoices, and column B (named invoice_date) holds the date each one was issued. To find out how many days have passed since each invoice went out:

=TODAY()-B2

// TODAY() = today's date, refreshes every time the workbook opens or recalculates
// B2 = the invoice date

Excel subtracts the invoice date from today's date and returns a whole number, the count of days elapsed. If B2 holds July 1, 2026, and today is July 18, 2026, the formula returns 17. Format the result as a number, not a date, or Excel will try to display "17 days" as an actual calendar date, which looks wrong.

How TODAY Works

It needs empty parentheses, even with nothing inside

=TODAY() is correct. =TODAY without the parentheses returns the #NAME? error, because Excel can't tell you mean the function. This trips up beginners who assume a zero-argument function doesn't need any punctuation at all.

It returns a serial number under the hood

Excel stores every date as a whole number counted from January 1, 1900. Today's date, July 18, 2026, is stored internally as 46221. TODAY returns that same kind of number. If a cell shows 46221 instead of a calendar date, the cell format is set to General or Number, not Date, format it and the readable date appears.

It's volatile: it recalculates on its own

TODAY doesn't wait for a dependent cell to change. It refreshes whenever you edit anything in the workbook, reopen the file, or press F9. Leave a workbook open overnight without touching it, and TODAY keeps showing yesterday's date until something forces a recalculation. This is different from a value updating in real time on its own, which TODAY does not do.

It's not the same as a manually typed date

Typing 7/18/2026 into a cell creates a fixed value that never changes. =TODAY() creates a live formula that updates the next time the sheet recalculates. Mixing the two in the same tracker is a common source of confusion. Know which cells hold formulas and which hold static values before you build date math on top of them.

Common Use Cases

Calculate how many days until a deadline

You're managing project deadlines and want a running countdown.

=C2-TODAY()   // returns days remaining until the date in C2

A negative result means the deadline has already passed.

Flag overdue tasks

You're building a task tracker and want a visual flag for anything past due.

=IF(TODAY()>due_date, "Overdue", "On Track")

// TODAY()    = current date
// due_date   = the deadline in each row

Find the last day of the current month

You need to calculate a month-end billing date without hardcoding the day count for February.

=EOMONTH(TODAY(), 0)   // returns the last calendar day of this month

Change the second argument to 1 to jump to next month's end instead, or -1 for last month's.

Set a deadline that skips weekends

You want a due date exactly 10 business days from today, ignoring Saturdays and Sundays.

=WORKDAY(TODAY(), 10)   // returns the date 10 working days from today

Handling Errors

TODAY itself never throws an error since it has no arguments to break. Errors show up when you combine TODAY with a value that isn't a real number or date.

Common causes of #VALUE! when TODAY is part of a larger formula:

  • Subtracting or adding a text string instead of a number or date
  • Referencing a cell where the date was typed or imported as text (common with data pulled from CSV files)
  • Mixing regional date formats, where "5/6/2026" means different days in different countries
=IFERROR(TODAY()-B2, "Check date format in B2")

If B2 contains the text "N/A" or a date stored as text rather than an actual date value, TODAY()-B2 throws #VALUE!, and IFERROR catches it and returns a readable message instead.

Before doing date math against TODAY, check suspect cells with =ISNUMBER(B2). If it returns FALSE, the cell holds text that looks like a date but isn't one, and any formula built on top of it will fail.

Notes & Gotchas

Does the TODAY function require any arguments?

No. TODAY takes zero arguments, but you still have to type the empty parentheses: =TODAY(). Drop them and Excel treats the entry as plain text or throws #NAME?, since it can't confirm you're calling a function.

What is the difference between the TODAY function and the NOW function?

TODAY returns only the current date, stored as a whole number. NOW returns the current date and time together, stored as a number with a decimal fraction representing the time of day. Use TODAY when you only care about the calendar date; use NOW when you need to log the exact moment something happened.

How do you insert today's date in Excel?

Type =TODAY() into any cell and press Enter. Excel pulls the date from your computer's system clock the moment the formula calculates. If you want a fixed date that never updates, press Ctrl+; instead, which inserts a static value rather than a formula.

How do you stop TODAY from updating and freeze it as a static date?

Copy the cell containing =TODAY(), then use Paste Special > Values to replace the formula with a fixed number. Once pasted as a value, that date stops moving even when the rest of the workbook recalculates. This is the standard fix for timestamps that need to stay put, like a "date submitted" column on a form log.

Why isn't TODAY updating when I expect it to?

Check your recalculation setting before assuming the formula is broken. Go to Formulas > Calculation Options and confirm it's set to Automatic, not Manual. If it's on Manual, press F9 to force a full recalculation and refresh every TODAY formula in the workbook at once.

Does TODAY update in real time while a workbook stays open?

No. TODAY only recalculates when you edit the sheet, reopen the file, or manually trigger a recalculation. A workbook left open across midnight will keep showing yesterday's date until something forces it to refresh, it doesn't tick over on its own like a clock.

Does TODAY use the time zone of whoever opens the file?

Yes, and this is where TODAY causes the most confusion in shared workbooks. TODAY reads the system clock of the device that opens the file, not the time zone of wherever the workbook was originally created. Two teammates in different time zones can open the exact same file near midnight and see different dates, with no error or warning that anything is inconsistent.

Does TODAY work with dates before 1900?

No. Excel's date system starts at January 1, 1900, so any calculation that pushes a result before that boundary returns a negative serial number, usually displayed as a string of pound signs (#####) or a #NUM! error. TODAY itself only ever returns a present-day date, so this mainly matters when you're subtracting far-future or far-past values against it.

Can combining TODAY with a text-formatted date cause wrong results?

Yes, and it happens silently. A date typed as text, like "03/04/2026," reads as March 4 under a US locale and April 3 under a UK or European one, so any math against TODAY using that cell can be off by weeks with no error to flag it. Convert suspect cells with DATEVALUE() first, or confirm they're real dates with ISNUMBER() before building formulas on top of them.

Related Functions

FunctionUse this when...
EOMONTHYou need the last (or first) day of a month relative to today.
WORKDAYYou need a deadline calculated in business days, skipping weekends.
DATEDIFYou need to calculate someone's age or tenure in years, months, or days.