Working With Dates In Excel

This week I’ve been working on date formulas, from very simple ones, to complex formulas that calculate workdays per month, based on start and end dates that can span several months.

Extract Information from a Date

Many times I need to pull a bit of information from a date, such as the year, month or weekday.


Here are the sample formulas I’d use. The date — December 29, 2008 — is in cell A2.

To Calculate

The Formula

The Result

Year =YEAR(A2) 2008
Month Number =MONTH(A2) 12
Month Name (short) =TEXT(A2,”mmm”) Dec
Month Name (long) =TEXT(A2,”mmmm”) December
Day of the month =DAY(A2) 29
Weekday Number =WEEKDAY(A2,1) 2
Weekday Name (short) =TEXT(A2,”ddd”) Mon
Weekday Name (long) =TEXT(A2,”dddd”) Monday
Year Month =TEXT(A2,”yyyy mm”) 2008 12

Using the Calculated Dates

If I plan to create a pivot table from data that contains a date field, I usually calculate the year and month in the source data. Then I can add those fields to the pivot table, instead of the individual dates.

Yes, the pivot table could automatically group the individual dates by year and month, but that can limit other functions in the pivot table. For example:

  • if two pivot tables are based on the same data, grouping one pivot table by month would cause the other pivot table to also be grouped by month.
  • if a field is grouped, you can’t add calculated items to the pivot table


You may also like...

13 Responses

  1. Mariusz Cendrowski says:

    I am a newcomer here.
    I became a fan of this site from the very beginning.
    Few days ago I tried to make pivot items visible and your idea helped me a lot and what more important drove me to this site.
    Now I have a little problem with the date of last save in VBA. I want to show a MsgBox when user opens the file. Of course I can use spreadsheet cell to register the date whenever Excel is saved. But Excel stores this date in workbook properties but I cannot find it in VBA.
    Can you help?

    Best regards


  2. Jon Peltier says:

    Calculated fields in pivot tables is one of those features that seem like such a good idea when listed in a bullet point, but which don’t live up to their billing. So I’ve usually added a calculation column to the source data.

    It used to be a real pain to add these calculations to the data. Whenever more records were added, you had to drag the formula down to include all of the rows. Then you had to update the pivot table source range.

    With Excel 2003’s Lists (and their descendent, Excel 2007’s Tables), the data source adjusts automatically, and any calculations also autofill themselves.

  3. Just to thank you about says:

    i appreciate highly your blog and i had learned interessting things from you.
    THank you very much.
    I use excel every day more than 10 hours!
    i love excel because he is like women : a lot of sercets and very funy!
    thank you avery much again and again…
    i like very much your book “Beginning PivotTables in Excel 2007” and i recommanded because your style is so clear that your reader will undertsand your ideas very easily.

    is it difficult to write a book? i plan to make a try…
    your faithfully

  4. Mariusz, you can use the FileDateTime in VBA. I’ll post an example tomorrow.

    Jon, you’re right, calculations in the source data are usually less of a headache, than trying to do them in the pivot tables. And it still surprises me when I enter a formula at the top of a table in Excel 2007, and it automatically fills down.

    And yes, ‘Just to thank you about’, it is difficult to write a book. The hardest part is sitting in the chair for the hundreds of hours that it takes, and staying focused. Thanks for letting me know that you liked it!

  5. Mariusz Cendrowski says:

    Debra, thank you very much.
    This is exactly what I needed.

    Best regards

  6. Charlie Hall says:

    Groups are only shared when pivot tables share the same pivot cache (I believe) – if you want two pivot tables to share the same data, but not the same groupings, you can use different range names (which have the same range address) or create the pivot tables each with different number of rows, and then once they are both created, change the addresses to include the same number of rows.

  7. Ron de Bruin says:

    I always try to avoid the Text function.

    YYYY is jjjj on my Dutch PC

    This is working for Year month


    There are a lot of date functions in DateRefiner that will work in every language version.

  8. Ron de Bruin says:



    I changed the 2 to a 4 from the 2 digit example in my first post

  9. Adam says:

    I’m having difficulty trying to count the number of rows within a date range – any help would be greatly appreciated..

    Let me explain
    I have a column “A” which contains a list of “Create Dates”, I want to count the number of rows where the create date is in a month e.g.

    Create Date

    The formula would look at this and give me the number of rows for March is 4 and a second formula would tell me the number of rows for May is 2

  10. Adam says:

    Found the solution in case anyone is interested;


    Thankfully I wasn’t far off …

  11. GANESH says:

    I want to arrive at 1st day of billing of any product from my data base in which customer would have started billing from various dates. e.g. A customer has started billing from 1st of the month, answer should be 1. If B customer has started billing from 5th of the month, the answer should be 5. How to arrive at the answer in excel with the use of formula.

  12. Hi Debra
    We have used Excel for many years to act as our company calendar…..personnel across the columns and daily dates down the left column. Four people share it. It has an automatic save every 5 minutes. From time to time, it goes “do-lally” after a close down and shows up when it is opened the following morning….lines and entries are duplicated/moved. It never seems to apply to the columns. All four users have the same settings for the sheet. Any suggestions as to why this is happening?

  1. November 20, 2008

    […] Working With Dates In Excel […]

Leave a Reply to Mariusz Cendrowski Cancel reply

Your email address will not be published. Required fields are marked *