Beginning PivotTables in Excel 2007 will introduce you to the exciting new pivot table features in Excel 2007. Create quick summaries and pivot charts, add impact with traffic light icons, design calculated fields, group dates and numbers.

Categories

Archives

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.

DateCalcs

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

GroupCalcItem

11 comments to Working With Dates In Excel

  1. Mariusz Cendrowski
    November 19th, 2008 at 6:45 am

    Hello.
    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.
    THANK YOU VERY MUCH INDEED.
    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

    Mariusz

  2. Jon Peltier
    November 19th, 2008 at 7:55 am

    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
    November 19th, 2008 at 6:48 pm

    hello;
    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. Debra Dalgleish
    November 19th, 2008 at 8:05 pm

    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. Contextures Blog » Entering Dates and Times in Excel
    November 20th, 2008 at 12:05 am

    [...] Working With Dates In Excel [...]

  6. Mariusz Cendrowski
    November 20th, 2008 at 5:12 am

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

    Best regards
    Mariusz

  7. Charlie Hall
    November 20th, 2008 at 12:34 pm

    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.

  8. Ron de Bruin
    November 26th, 2008 at 1:22 pm

    I always try to avoid the Text function.

    YYYY is jjjj on my Dutch PC

    This is working for Year month

    =–(RIGHT(YEAR(A2),4)&TEXT(MONTH(A2),”00″))

    There are a lot of date functions in DateRefiner that will work in every language version.
    http://www.rondebruin.nl/datarefiner.htm

  9. Ron de Bruin
    November 26th, 2008 at 1:27 pm

    Shorter

    =–(YEAR(A2)&TEXT(MONTH(A2),”00″))

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

  10. Adam
    October 23rd, 2009 at 6:40 am

    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
    04/03/2009
    05/03/2009
    05/03/2009
    06/03/2009
    20/05/2009
    20/05/2009
    22/05/2009

    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

  11. Adam
    October 23rd, 2009 at 7:47 am

    Found the solution in case anyone is interested;

    =COUNTIF(Data!A:A,">="&DATE(2009,5,1))-COUNTIF(Data!A:A,">"&DATE(2009,5,31))

    Thankfully I wasn’t far off …

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>