How to show month name or weekday for a date, first or last day of the month, week start date, subtracting dates, and more Microsoft Excel date formulas. Get the free workbook with examples.

There are specialized date formulas on these pages: Leap Year Calculations, Easter Date Calculations, and see how to find the Nth Weekday in Month (e.g. the 4th Thursday)

And if your dates won't change format, see the Date Format Troubleshooting Tips page.

To calculate the number of days between two specific dates, you don't need a special function -- just subtract the earlier date from the later date, with a simple worksheet formula.

Excel dates are really stored as numbers, so you can subtract one date number from another date number.

However, the **result cannot be a negative number**, so subtract the earlier date (smaller number) from the later date (bigger number).

In this example, there is a January start date in cell A2 and a June end date in cell B2.

To find the number of dates between the start date and end date, use this formula in cell C2:

**=B2-A2**

This formula starts with a cell reference to the end data in cell B2, and subtracts the start date in cell A2

**Tip**: If the result looks like a date, instead of a number, change the
cell's number format to General

Sometimes when you're working with date functions, the formula cell shows all number signs (hash tags, pound signs) instead of a number or date.

That happens if the result is a negative number -- Excel dates must be zero or greater. Excel dates cannot be negative numbers.

In this example, the formula cell shows all number signs if you subtract the later date (B4) from the earlier date (A4). The result is a negative number, and Excel cannot display the result

To calculate the the current date, use the TODAY function. It will automatically update, if you open the workbook on a different day.

**=TODAY()**

NOTE: To enter the current date as a static value, that will not update,
use the shortcut key: **Ctrl + ;**

If a cell contains a date and time, you can use the following Excel date functions to extract the year, month number, or day number from the date.

For each of these Excel functions, the argument syntax is the same. There is only one required argument:

**serial_number**- Required

The serial number represents a date, which Excel stores as numbers.

- You could type a number as the argument, or use a cell reference.

This screenshot shows the MONTH function, with its syntax.

In this example, there is a valid date in cell A2.

Use the following date functions to return the Year, Month and Day for the specified date.

**Year**: To get the year from the date in cell A2, use the YEAR function:

**=YEAR(A2)**

**Month**: To get the month number from the date in cell A2, use the MONTH function:

**=MONTH(A2)**

**Day of Month**: To get the day of the month from the date in cell A2, use the DAY function:

**= DAY(A2)**

**NOTE**: If the formula result looks like a date, instead of a number, change the
cell's number format to General

If a cell contains a date, you can extract parts of that date as text, by using the Excel TEXT function.

This screenshot shows the TEXT function, with its argument syntax. There are 2 required arguments:

**value**: number to convert to text**format_text**: text string that defines for the number formatting to use

For example, show the month name, or the weekday name of the date. In this example, the date is in cell A2.

- Month Name (short):
**=TEXT(A2,"mmm")** - Month Name (long):
**=TEXT(A2,"mmmm")** - Weekday Name (short):
**=TEXT(A2,"ddd")** - Weekday Name (long):
**=TEXT(A2,"dddd")**

If you need to calculate the first or last day of a month, the EOMONTH (end of month) function works well. In this example, the date is in cell B2.

**NOTE**: For Excel formulas to find the**nth weekday in a month**, such as the 3rd Tuesday, go to the Nth Weekday in Month page.

The EOMONTH uses 2 arguments -- Start Date, and Number of Months. To get a date in the current month, use zero as the number of months.

Here are a few examples:

--Last day of previous month: **=EOMONTH(B2,-1)**

--First day of selected month: **=EOMONTH(B2),-1)+1 **

--Last day of selected month: **=EOMONTH(B2,0)**

--First day of next month: **=EOMONTH(B2,0)+**1

--Last day of selected month, last year: **=EOMONTH(B2,-12)**

Or, combine the EOMONTH function with TODAY, to get dates relative to the current date. For example:

--First day of current month: **=EOMONTH(TODAY(),-1)+1**

If a cell contains a combined date and time, you can extract just the date value, by using the INT function. Excel stores dates as numbers, with the integer representing the date, and a decimal portion representing the time.

The INT function returns just the integer portion of that number, which represents the date. In this example, the combined date/time is in cell A2.

To get the date, enter the following formula in cell B2: **=INT(A2)**

To get the weekday number for a date, use the WEEKDAY function. For example, with a date in cell B4, this formula will show its weekday number (Sunday = 1, Monday = 2, etc.):

**=WEEKDAY(B4)**

There is an optional second argument for the WEEKDAY function -- **return_type** -- which controls how the weekdays are numbered. The list of options is shown in the screen shot below.

- If this argument is omitted, the default return_type of 1 is used, with weekdays numbered from Sunday (1) to Saturday (7)
- In older versions of Excel, only options 1, 2 and 3 are available.

To get the week number for a date, use the WEEKNUM function. For example, with a date in cell B2, this formula will show its week number:

**=WEEKNUM(B2)**

There is an optional second argument for the WEEKNUM function -- **return_type** -- which controls how the weekdays are numbered. The list of options is shown in the screen shot below.

- If this argument is omitted, the default return_type of 1 is used, with weeks starting on Sunday
- In older versions of Excel, only options 1 and 2 are available.

There are two systems used for the week numbers -- System 1 and System 2. When you click on a Return Type in the list, you can see which system it uses.

**System 1** -- Week containing January 1 is the first week of the year, and is numbered week 1.

**System 2** -- Week containing first Thursday of year is first week of year, and is numbered as week 1. European week numbering system (ISO 8601)

To group data by week, use the WEEKDAY function to calculate a week start date for each record. In the screen shot below, there are dates in cells A2:A9. The first 7 dates are all in the same week, with a start date of Sunday, November 27. The final date is in the following week, which begins Sunday, December 4.

Use this formula to calculate Sunday as the start date: **=A2-WEEKDAY(A2+1,3)**

The "3" at the end of that formula tells Excel to use the numbers 0 - 6 for Monday to Sunday. The date is adjusted by one day, to subtract 0 if the date is a Sunday, 1 on Monday, etc.

If you're using dates with the GETPIVOTDATA formula, you might have problems with date references. If the date format in the formula is not an exact match for the date format in the pivot table, the result might be an error.

To help you avoid this problem, this short video shows a few Date workarounds for the GetPivotData function. There are more details and written steps on the GETPIVOTDATA page.

Excel's date functions won't work if the value is a text string, instead of a real date. For example, imported data might have dates in this format -- YYYYMMDD.

To get the date from that string (it might be formatted as text or a number), you can use:

-- LEFT, MID and RIGHT functions (traditional, longer formula)

-- TEXT function (short formula)

The most common way to get the date from a YYYYMMDD string or number, is to use the DATE function, with LEFT, MID, and RIGHT extracting the year, month and day numbers.

**=DATE(LEFT(A2,4), MID(A2,5,2), RIGHT(A2,2))**

This video shows how to extract the year, month and day into separate columns, using these 3 formulas:

- Year:
**=LEFT(A2,4)** - Month:
**=MID(A2,5,2)** - Day:
**=RIGHT(A2,2)**

Instead of using the long LEFT, MID, RIGHT formula, UniMord shared a formula that's much shorter.

**=--TEXT(A2, "0000-00-00")**

In that short formula:

- TEXT function formats the 8-digit YYYYMMDD number as "0000-00-00"
- the 2 minus signs convert the result to a positive number.

**NOTE**: This might not work for all regional settings, so test carefully before you use it in your workbooks. Unimord based this formula on a StackOverflow answer from Ron Rosenfeld.

To see how these formulas work, download the sample Date Functions workbook. The file is zipped, and is in xlsx file format

Last updated: August 29, 2022 3:57 PM