Excel date functions with formula examples

This is the final part of our Excel Date Tutorial that offers an overview of all Excel date functions, explains their basic uses and provides lots of formula examples.

Microsoft Excel provides a ton of functions to work with dates and times. Each function performs a simple operation and by combining several functions within one formula you can solve more complex and challenging tasks.

In the previous 12 parts of our Excel dates tutorial, we have studied the main Excel date functions in detail. In this final part, we are going to summarize the gained knowledge and provide links to a variety the formula examples to help you find the function best suited for calculating your dates.

The main function to calculate dates in Excel:

Get current date and time:

Convert dates to / from text:

Retrieve dates in Excel:

Calculate date difference:

Calculate workdays:

Excel DATE function

DATE(year, month, day) returns a serial number of a date based on the year, month and day values that you specify.

When it comes to working with dates in Excel, DATE is the most essential function to understand. The point is that other Excel date functions not always can recognize dates entered in the text format. So, when performing date calculations in Excel, you'd better supply dates using the DATE function to ensure the correct results.

Here are a few Excel DATE formula examples:

=DATE(2015, 5, 20) - returns a serial number corresponding to 20-May-2015.

=DATE(YEAR(TODAY()), MONTH(TODAY()), 1) - returns the first day of the current year and month.

=DATE(2015, 5, 20)-5 - subtracts 5 days from May 20, 2015.
Excel DATE formula examples

At first sight, the Excel DATE function looks very simple, however, it does have a number of specificities pointed out in the Excel DATE tutorial.

Below you will find a few more examples where the Excel DATE function is part of bigger formulas:

Excel TODAY function

The TODAY() function returns today's date, exactly as its name suggests.

TODAY is arguably one of the easiest Excel functions to use because it has no arguments at all. Whenever you need to get today's date in Excel, enter the following formula is a cell:

=TODAY()

Apart from this obvious use, the Excel TODAY function can be part of more complex formulas and calculations based on today's date. For example, to add 7 days to the current date, enter the following formula in a cell:

=TODAY()+7

To add 30 weekdays to today's date excluding weekend days, use this one:

=WORKDAY(TODAY(), 30)
Formula examples to get today's date in Excel

Note. The date returned by the TODAY function in Excel updates automatically when your worksheet is recalculated to reflect the current date.

For more formula examples demonstrating the use of the TODAY function in Excel, please check out the following tutorials:

Excel NOW function

NOW() function returns the current date and time. As well as TODAY, it does not have any arguments. If you wish to display today's date and current time in your worksheet, simply put the following formula in a cell:

=NOW()

Note. As well as TODAY, Excel NOW is a volatile function that refreshes the returned value every time the worksheet is recalculated. Please note, the cell with the NOW() formula does not auto update in real-time, only when the workbook is reopened or the worksheet is recalculated. To force the spreadsheet to recalculate, and consequently get your NOW formula to update its value, press either Shift+F9 to recalculate only the active worksheet or F9 to recalculate all open workbooks.

For more details, please see How to use NOW function in Excel.

Excel DATEVALUE function

DATEVALUE(date_text) converts a date in the text format to a serial number that represents a date.

The DATEVALUE function understands plenty of date formats as well as references to cells that contain "text dates". DATEVALUE comes in really handy to calculate, filter or sort dates stored as text and convert such "text dates" to the Date format.

A few simple DATEVALUE formula examples follow below:

=DATEVALUE("20-may-2015")

=DATEVALUE("5/20/2015")

=DATEVALUE("may 20, 2015")
DATEVALUE formula examples

And the following examples demonstrate how the DATEVALUE function can help with solving real-life tasks:

Excel TEXT function

In the pure sense, the TEXT function cannot be classified as one of Excel date functions because it can convert any numeric value, not only dates, to a text string.

With the TEXT(value, format_text) function, you can change the dates to text strings in a variety of formats, as demonstrated in the following screenshot.
Excel TEXT formula examples

Note. Though the values returned by the TEXT function may look like usual Excel dates, they are text values in nature and therefore cannot be used in other formulas and calculations.

Here are a few more TEXT formula examples that you may find helpful:

Excel DAY function

DAY(serial_number) function returns a day of the month as an integer from 1 to 31.

Serial_number is the date corresponding to the day you are trying to get. It can be a cell reference, a date entered by using the DATE function, or returned by other formulas.

Here are a few formula examples:

=DAY(A2) - returns the day of the month from a date in A2

=DAY(DATE(2015,1,1)) - returns the day of 1-Jan-2015

=DAY(TODAY()) - returns the day of today's date
Examples of using the DAY function in Excel

Excel MONTH function

MONTH(serial_number) function in Excel returns the month of a specified date as an integer ranging from 1 (January) to 12 (December).

For example:

=MONTH(A2) - returns the month of a date in cell A2.

=MONTH(TODAY()) - returns the current month.

The MONTH function is rarely used in Excel date formulas on its own. Most often you would utilize it in conjunction with other functions as demonstrated in the following examples:

For the detail explanation of the MONTH function's syntax and plenty more formula examples, please check out the following tutorial: Using the MONTH function in Excel.

Excel YEAR function

YEAR(serial_number) returns a year corresponding to a given date, as a number from 1900 to 9999.

The Excel YEAR function is very straightforward and you will hardly run into any difficulties when using it in your date calculations:

=YEAR(A2) - returns the year of a date in cell A2.

=YEAR("20-May-2015") - returns the year of the specified date.

=YEAR(DATE(2015,5,20)) - a more reliable method to get the year of a given date.

=YEAR(TODAY()) - returns the current year.
Examples of using the YEAR function in Excel

For more information about the YEAR function, please see:

Excel EOMONTH function

EOMONTH(start_date, months) function returns the last day of the month a given number of months from the start date.

Like most of Excel date functions, EOMONTH can operate on dates input as cell references, entered by using the DATE function, or results of other formulas.

A positive value in the months argument adds the corresponding number of months to the start date, for example:

=EOMONTH(A2, 3) - returns the last day of the month, 3 months after the date in cell A2.

A negative value in the months argument subtracts the corresponding number of months from the start date:

=EOMONTH(A2, -3) - returns the last day of the month, 3 months before the date in cell A2.

A zero in the months argument forces the EOMONTH function to return the last day of the start date's month:

=EOMONTH(DATE(2015,4,15), 0) - returns the last day in April, 2015.

To get the last day of the current month, enter the TODAY function in the start_date argument and 0 in months:

=EOMONTH(TODAY(), 0)
EOMONTH formulas to get the last day on the month in Excel

You can find a few more EOMONTH formula examples in the following articles:

Excel WEEKDAY function

WEEKDAY(serial_number,[return_type]) function returns the day of the week corresponding to a date, as a number from 1 (Sunday) to 7 (Saturday).

  • Serial_number can be a date, a reference to a cell containing a date, or a date returned by some other Excel function.
  • Return_type (optional) - is a number that determines which day of the week shall be considered the first day.

You can find the complete list of available return types in the following tutorial: Day of the week function in Excel.

And here are a few WEEKEND formula examples:

=WEEKDAY(A2) - returns the day of the week corresponding to a date in cell A2; the 1st day of the week is Sunday (default).

=WEEKDAY(A2, 2) - returns the day of the week corresponding to a date in cell A2; the week begins on Monday.

=WEEKDAY(TODAY()) - returns a number corresponding to today's day of the week; the week begins on Sunday.
Excel WEEKDAY formulas to return the day of the week

The WEEKDAY function can help you determine which dates in your Excel sheet are working days and which ones are weekend days, and also sort, filter or highlight workdays and weekends:

Excel DATEDIF function

DATEDIF(start_date, end_date, unit) function is specially designed to calculate the difference between two dates in days, months or years.

Which time interval to use for calculating the date difference depends on the letter you enter in the last argument:

=DATEDIF(A2, TODAY(), "d") - calculates the number of days between the date in A2 and today's date.

=DATEDIF(A2, A5, "m") - returns the number of complete months between the dates in A2 and B2.

=DATEDIF(A2, A5, "y") - returns the number of complete years between the dates in A2 and B2.
DATEDIF formulas to calculate the date difference in Excel

These are just the basic applications of the DATEDIF function and it is capable of much more, as demonstrated in the following examples:

Excel WEEKNUM function

WEEKNUM(serial_number, [return_type]) - returns the week number of a specific date as an integer from 1 to 53.

For example, the below formula returns 1 because the week containing January 1 is the first week in the year.

=WEEKNUM("1-Jan-2015")

The following tutorial explains all the specificities on the Excel WEEKNUM function: WEEKNUM function - calculating week number in Excel.

Alternatively you can skip directly to one of the formula examples:

Excel EDATE function

EDATE(start_date, months) function returns the serial number of the date that is the specified number of months before or after the start date.

For example:

=EDATE(A2, 5) - adds 5 months to the date in cell A2.

=EDATE(TODAY(), -5) - subtracts 5 months from today's date.

For a detailed explanation of EDATE formulas illustrated with formula examples, please see: How to use EDATE function in Excel.

Excel YEARFRAC function

YEARFRAC(start_date, end_date, [basis]) function calculates the proportion of the year between 2 dates.

This very specific function can be used to solve practical tasks such as calculating age from date of birth.

Excel WORKDAY function

WORKDAY(start_date, days, [holidays]) function returns a date N workdays before or after the start date. It automatically excludes weekend days from calculations as well as any holidays that you specify.

This function is very helpful for calculating milestones and other important events based on the standard working calendar.

For example, the following formula adds 45 weekdays to the start date in cell A2, ignoring holidays in cells B2:B8:

=WORKDAY(A2, 45, B2:B85)

For the detailed explanation of WORKDAY's syntax and more formula examples, please check out:

WORKDAY function - add or subtract workdays in Excel

Excel WORKDAY.INTL function

WORKDAY.INTL(start_date, days, [weekend], [holidays]) is a more powerful variation of the WORKDAY function introduced in Excel 2010.

WORKDAY.INTL allows calculating a date N number of workdays in the future or in the past with custom weekend parameters.

For example, to get a date 20 workdays after the start date in cell A2, with Monday and Sunday counted as weekend days, you can use either of the following formulas:

=WORKDAY.INTL(A2, 20, 2, 7)

or

=WORKDAY.INTL(A2, 20, "1000001")

Of course, it might be difficult to grasp the essence from this short explanation, but more formula examples illustrated with screenshots will make things really easy:

WORKDAY.INTL - calculating workdays with custom weekends

Excel NETWORKDAYS function

NETWORKDAYS(start_date, end_date, [holidays]) function returns the number of weekdays between two dates that you specify. It automatically excludes weekend days and, optionally, the holidays.

For example, the following formula calculates the number of whole workdays between the start date in A2 and end date in B2, ignoring Saturdays and Sundays and excluding holidays in cells C2:C5:

=NETWORKDAYS(A2, B2, C2:C5)

You can find a comprehensive explanation of the NETWORKDAYS function's arguments illustrated with formula examples and screenshots in the following tutorial:

NETWORKDAYS function - calculating workdays between two dates

Excel NETWORKDAYS.INTL function

NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays]) is a more powerful modification of the NETWORKDAYS function available in Excel 2010 and later. It also returns the number of weekdays between two dates, but lets you specify which days should be counted as weekends.

Here is a basic NETWORKDAYS formula:

=NETWORKDAYS(A2, B2, 2, C2:C5)

The formula calculates the number of workdays between the date in A2 (start_date) and the date in B2 (end_date), excluding the weekend days Sunday and Monday (number 2 in the weekend parameter), and ignoring holidays in cells C2:C5.

For full details about the NETWORKDAYS.INTL function, please see:

NETWORKDAYS function - counting workdays with custom weekends

Hopefully, this 10K foot view on the Excel date functions has helped you gain the general understanding of how date formulas work in Excel. If you want to learn more, I encourage you to check out the formula examples referenced on this page. I thank you for reading and hope to see you again on our blog next week!

595 comments

  1. Hi! How would you set up by using conditional formatting the coloring of all cells in the date column for a specific year? i.e. I have certain dates in the column L and if I put e.g. 2015 in one specific cell, all dates for that year will be colored in the column L. Thank you.

  2. I have a workbook that provides me with a count in (D5) of tasks that are due today calculating the dates in a column (E9-62) These are highlighted when the task reaches the current date.
    But I want to be able to add a Row and in cell (D6) have a formula that will provide me a count of tasks due with in 7 days using the same date range (E9-62) and have the dates highlighted in a different colour and a number displayed of tasks due with in 7 days in cell(D6)

  3. Hello, I'm trying to calculate the total length of service for employees who have had a break in their employment. I have the following dates: hire date, termination date, rehired date, and either a termination date or today's date.

    I can calculate the tenure for each period separately using the formula:

    =DATEDIF(start date, end date, "y") & " Years, " & DATEDIF(start date, end date, "ym") & " Months."

    However, I'm unsure how to sum the two periods together. For example, if the hire date is 01/01/2024, the termination date is 02/01/2024, the rehired date is 05/01/2024, and today's date is 11/01/2024, I need to calculate the total length of service between 01/01/2024 and 02/01/2024, and between 05/01/2024 and 11/01/2024.

    Any help would be greatly appreciated!

      • Thank you, Alexander, but I can't use this formula, as my dates are all in the same row. If I put them in two separate rows, my headcount will be doubled. I'm looking for a formula that will give a difference between four dates

  4. There are two entries into a cell in the first column: one is a date, and the other is not. In the next column, I need a formula that adds 7 days to the date, if
    it is a date. If it is not a date, enter a zero.

  5. I would like to create a formula that calculates the due date in one formula for Issuance letter from 1st day until 26th due date will be date same as date issue, month will be next month (example: issue letter 26 Sept due date will be 26 Oct) and 27th toward to end of the month, due will be 2 working days 1st week of 2 following month (example: issue letter 29th sept, due date will be 05 Nov). Any assistance is greatly appreciated.

  6. Our company month start on the 20th and ends on the 19th.I would like to create a formula that generates the date from 20th September to 19th October, but the month up top should read its October. Any help with this?

  7. Good afternoon,

    I'm trying to figure out a formula for how to use a date such as 7/17/2024 in one cell and in the next cell be able to have the days between that date and currently today in years months days which automatically update every day.

  8. Hi there,

    Looking to try and calculate the total number of 10th days (i.e. Sept. 10th, Oct. 10th, Nov. 10th, Dec. 10th) between today's date through the end of a given calendar year using Datedif() function. The formula would work correctly regardless of current year.

    Thank you.

    • Hi! If I understand your task correctly, try the following formula:

      =12-MONTH(IF(DATE(YEAR(TODAY()), MONTH(TODAY()),10)Excel DATE function with formula examples to calculate dates

  9. Hello, need help as I've been scouring the internet for days now.
    B2=7/31/2024
    C2=18 (average pay days interval for the last 6 months, ie, vendor is paid in average every 18 days)
    D2=40,000 (average payment value)
    E1:H1=Mondays of every week starting from Aug 2024 onward.
    I need some kind of formula where average payment value (40,000) will show up in the appropriate week buckets every 18 days until the year ends.

    e.g. 7/31/2024, next 18 days is 8/18/2024, then 9/5/2024 so on and so forth.
    If the date falls between a week's Monday - Sunday, the 40,000 value will show up on that week.

  10. Can anyone help me with an equation that will count the number of dates within a range of dates? To provide an example, I have created a spreadsheet to track my team’s training dates for a number of training topics. The team have access to the spreadsheet and can update it when they complete training throughout the year. I have an edate formula that tells me when their training runs out and needs to be renewed. What I need is an equation that will tell me the number of staff that are trained within the next year and that will remain “live” as in counting the number of dates within a column that range within today and a year from today.

  11. "My rental contract spans from June 15, 2024, to September 14, 2027. Rent is paid quarterly on the 20th of each quarter, beginning on June 20, 2024. My financial year aligns with the calendar year, starting on January 1, 2025, and ending on December 31, 2025. What is the final complete quarter within my financial year?" And how many number of quarter's I completed.

    Technically, my quarter complete before 31/12/2025 is 14/12/2024 and I have completed 6 Quarters

    Can you please help me to design the formula for both answers.

    Thanks,

    Sunil PInto.

      • Thank you, Sir,
        Your formula perfectly matches my requirements. Thanks a lot

  12. How many quarterly cheques will I need to issue between 15/6/2024 and 14/9/2027, if each cheque is due on the 20th of the quarter? I believe the answer is 13. Can I use an Excel formula to verify this?

    Kindly help to solve the probem

      • Sir used <counta(DATE(2024, SEQUENCE(13,1,6,3),20)) to get the number in a single cell. But how do I link with my period "from 15/6/2024 to 14/9/2027" if I change my period, my number of quarters also needs to change. My quarter starts on 20th of June.

        Can you please help me?

      • Sir, Sorry for bothering you again i used this formula =20/06/2024")-COUNTIF(H3,"

        G3 is my start period and H3 is my end period.

        But, unable to fix my problem.

        Hope you will help me

        • Sir Sorry for bothering you again, I used this formula =20/06/2024")-COUNTIF(H3,"

          G3 is my start period and H3 is my end period.

          But, unable to fix my problem.

          Hope you will help me

          Thanks & Regards

          Sunil Pinto

          • Mr.Alexander,

            There is nothing to do with Countif and Countifs formula in this topic. I have gone through the link you provided.

            But other side I have found the answer from another forum, please refer below may be useful for you in the future. A1 stands for period star and B1 Stands for Period end

            =IF(MOD(DATEDIF(A1,B1,"m"),3)=2,ROUNDUP(DATEDIF(A1,B1,"m")/3,0),DATEDIF(A1,B1,"m")/3+1)

            Thanks for your co-operation

  13. Hi,
    Want to see what formula that I can setup for example with each columns that set up with Start Date, State Time, End Date, End Time, and last columns would provide me the total number of days, hours, and minutes I

    Example:
    Start Date; June 23, 2022
    State time: 3: 45 PM
    End Date: June 25, 2022
    End Time: 5:05 PM
    Total: Days: ?, Hours: ?, Minutes:?

    If you can help provide the formula that would produce this output that I'm looking for.

  14. Hi, I'm trying to create an excel function that will skip an x amount of days if it falls on a weekend. If the date falls on a Sunday then I would like to go back 2 days. If Saturday then 1 day. This is the function that I'm using right now =IF(WEEKDAY(B76,17)=1,(DATE(YEAR(B76),MONTH(B76),DAY(B76)+48)),IF(WEEKDAY(B76,17)=7,(DATE(YEAR(B76),MONTH(B76),DAY(B76)+49)),((DATE(YEAR(B76),MONTH(B76),DAY(B76)+50))))) I am using 50 because that is the base amount of days I want to go forward.

    I used this as a base that I made =IF(WEEKDAY(M2,1)=1,(DATE(YEAR(M2),MONTH(M2),DAY(M2)+1)),IF(WEEKDAY(M2,1)=7,(DATE(YEAR(M2),MONTH(M2),DAY(M2)+2)),((DATE(YEAR(M2),MONTH(M2),DAY(M2)))))) to simply skip to Monday if it falls on a weekend, and it works without issue.

    My second formula will exclusively add 50 days and completely disregards the if Saturday or Sunday part of the equation no matter what I do. How can I fix this??

    • Hi! To determine the day of the week, use WEEKDAY function. To return a Friday date instead of Saturday or Sunday, try one of these formulas:

      =IF(WEEKDAY(A1+50,2)>5,A1+50-(WEEKDAY(A1+50,2)-5),A1+50)

      =A1+50-MAX(0,WEEKDAY(A1+50,2)-5)

  15. How can I look up a date based on if it matches month and year? I have an amortization table that I'm trying to find the principal balance in May of the year following loan start. The position of May in the table will change based on the start date so can't hardcode it to look at one specific cell.

    i.e. Start date =4/5/2023 (A3)
    I need to find the principal balance as of 5/5/24
    (dates are in B, principal is in F)

    I'm trying to use =IF(K7"",XLOOKUP(AND(MONTH=5,YEAR(A3)+1),B10:B120,F10:F120,,0,1),0) but it's failing at the MONTH=5

    • Hello! If I understand your task correctly, use the MONTH and YEAR functions to get the month and year values. Then use INDEX MATCH to extract value from column F that matches two criteria.
      You can find the examples and detailed instructions here: Excel INDEX MATCH with multiple criteria.
      The formula might look something like the following:

      =IF(K7<>"",INDEX(F10:F30, MATCH(1, (MONTH(B10:B30)=MONTH($A$3)+1)*(YEAR(B10:B30)=YEAR($A$3)+1),0)))

      Hope this is what you need.

  16. What formula can be used if any document put in excel sheet exceeds 3 years that need to be red by itself?

  17. Looking for a formula that will search a date and find which date range it falls within and pull up an applicable fiscal year
    For example:
    Date= Jun 2 2024
    fiscal years= June 1 2022-May 31 2023 (fiscal yr = F24) , June 1 2023- May 31 2024 (fiscal yr = F25)

    formula would pull = F25

    • Hi i needs to make a chart with dates with rept function like 24th july should match with the upper dates

      1-Jul 2-Jul 3-Jul 4-Jul 5-Jul 6-Jul 7-Jul
      jasjsj 24-jul IIIIIIIIIIIIIIIIIIIIIIII
      hdbj 16-Aug
      awdjdqjb20-Jun
      qwbjka 7-Oct
      add 20-Oct
      nbjbaw 13-Jul
      annbaw
      awna

Post a comment



Thank you for your comment!
When posting a question, please be very clear and concise. This will help us provide a quick and relevant solution to
your query. We cannot guarantee that we will answer every question, but we'll do our best :)