Best of Pointy Haired Dilbert – 2009

Share

Facebook
Twitter
LinkedIn

Ah, you thought I will let you go to the next decade without a “year in review” post? No so fast my friend, not so fast.

[This post is a bit long by our standards, but full of gooey excel goodness. So get a cup of coffee or choco and get going]

January 2009

The year 2009 has been pivotal in PHD’s life. It all started with a friendly email from Microsoft on Jan 1st telling me that PHD become an MVP. I felt wonderful knowing that. Even though the award meant little in terms of benefits, it is a great tribute to our little community and the passion we share here.

Later in the first week we wrote a post on how to make combination charts in excel. The discussion on combo charts continued throughout the year, so much that when I posted a holiday greeting card at the end of the year, Santhosh, one of our regulars said that they card looked like a combo chart.

Most importantly we have crossed the milestone of 2000 RSS subscribers in the Jan 2009. To celebrate that I posted one hundred excel tips. That was fun (plus Jo hated me for sitting in front of computer that long).

February

February is fun. I started off the month with an excel twitter client. Which became a wild hit on internet (ok, not so wild, but few of the other blogs in excel community did mention it. Also, JP, the rockstar VBA blogger at codeforoutlookandexcel made an add-in out of it)

Later in the month I got too excited to discover that you can use excel data filters to make a dynamic chart. By far the cheapest and easiest way to make a dynamic chart. We continued the discussion on dynamic charts for the rest of the year and posted several ways to make them.

March

I celebrated the one year anniversary of “conditional formatting rockstar” post by writing 5 more posts on excel conditional formatting. The series started with conditional formatting basics and went on to talk about how you can solve 4 most common problems using excel CF.

We also started writing about excel array formulas and continued that discussion off and on. Array formulas area fun and easy to write (once you have the basics right).

April

This has been a dull month what with my transfer from India to Sweden and sudden lack of internet connectivity. Despite all that we wrapped our first visualization contest on budget vs actual charts and posted some really excellent charting alternatives to the familiar problem.

PHD is also featured on Lifehacker for the Excel Formulas Errors – How to handle them? post.

May

We have proposed “Tweetboards” as an alternative to traditional dashboards and generated good bit of discussion in May. Later several readers emailed me their tweetboard implementations. Slowly tweetboards are spreading in the wild 😉

We also rounded up all the Excel 2007 Productivity Tips.

June

I have stared the Project Management using Excel series in this month with Project Management Gantt Charts. The 6+1 posts soon became legendary and helped me launch the project management templates. In total these posts had more than 200 comments, 150k page views in a short time.

June also was the best month PHD’s history as the blog got featured again on Lifehacker and Delicious home pages for the Excel Mouse Tricks post. Later that month we have rounded up all the techniques you can use to convert excel files to pdfs.

July

We focused on charting more and had the 14 skills you must have for making better charts. I have also written about the all too familiar sumif with multiple criteria problem and some formula solutions for it.

Later that month my post on Using Excel Goal Seek and Finding how much you need for retirement got mentioned in Lifehacker and fetched me a ton of new visitors.

August

Thanks to Aaron, who guest posted about excel waterfall charts in August. In august, I have turned my attention towards the pivot tables and wrote Excel Pivot Tables Tutorial. I have been playing with pivots off and on for a while and this post was my first serious attempt to explore the features. Later I wrote more about them and I am planning to explore pivot tables further in 2010.

In august, we have also crossed the 5000 RSS subscriber mark and celebrated it with a huge contest. Later that month I have wrapped up all the contest entries in the Excel Formulas – 29 tips post.

September

I have started the month with a discussion on Pareto Charts and how to make them in excel. Later that month I wrote about Excel Data Tables features. Both of these posts attracted a lot of discussion and helped me learn valuable new tricks in excel.

Later that month, on September 24th, I became a dad. My life has been the most wonderful and beautiful ever since.

October

In October we wrapped up the project management series with a Project Status Dashboards using Excel. Later that month I have launched the project management templates for excel product. I met several new customers and started to believe that I can make a living out of this blog.

November

In November, we started our most ambitious visualization challenge ever with the Zoho Sales Data Visualization challenge. We now have more than 30 excellent entries and I am waiting for Jan4th when we announce the voting for winner.

Also I have posted about the sumproduct formula and reviewed excel 2010.

December

We started the month with a discussion on using drawing shapes along with charts to make better dashboards. Later in the month I have written about making a quick thermo-meter chart and posted alternatives to compare targets using charts.

Finally I have released the free 2010 calendar excel for you to download and print copies.

To wrap up,

I liked this year thoroughly. Personally it has been nothing short of an exciting ride. We became parents, Jo got promoted, we purchased small piece of land (where we are going to build our dream house) and things couldn’t be better.

Blogwise, the year is equally exciting. I am extremely thankful to all of you for being there for me and encouraging me to learn and share. I met several new people thru this medium and made new friends.

I hope the year had been a memorable experience for you as well.

I sincerely wish you a prosperous new year 2010. Thank you.

PS: Those of you who visited the site yesterday must have seen the nagging “Database error”. I am sorry, but there was a problem when I moved the blog to a different server and the DB went down for almost 24 hours. Now it is up and running smoothly. Let me know if you see something funny.

Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

14 Responses to “How many ‘Friday the 13th’s are in this year? [Formula fun + challenge]”

  1. in C3=2016
    in C4=3
    in C5=1 (the first next year with three Friday the 13ths)

    =SMALL(IF(MMULT(--(MOD(DATE(C3+ROW(1:1000),COLUMN(A:L),13),7)=6),ROW(1:12)^0)=C4,C3+ROW(1:1000)),C5)

    formula check in the next 1000 years

  2. Brian says:

    This will generate a table of counts of Friday the 13th's by year. If I didn't screw it up the next year with three is 2026.

    I created a simple parameter table with a start date and end date that I wanted to evaluate. That calculates the number of days and generates a list of those days. Then filter and group. The generation of the list in power query (i.e. without populating a date table in excel) is pretty cool, otherwise this isn't really doing anything than creating a big date and filtering/counting.

    let
    Source = List.Dates(StartDateAsDate, Days2, #duration(1,0,0,0)),
    ConvertDateListToTable = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    AddDayOfMonthColumn = Table.AddColumn(ConvertDateListToTable, "DayOfMonth", each Date.Day([Column1])),
    AddYearColumn = Table.AddColumn(AddDayOfMonthColumn, "Year", each Date.Year([Column1])),
    AddDayOfWeekColumn = Table.AddColumn(AddYearColumn, "Day of Week", each Date.DayOfWeek([Column1])),
    FilterFriday13 = Table.SelectRows(AddDayOfWeekColumn, each ([DayOfMonth] = 13) and ([Day of Week] = 5)),
    Friday13thsByYear = Table.Group(FilterFriday13, {"Year"}, {{"Number of Friday the 13ths!", each Table.RowCount(_), type number}})
    in
    Friday13thsByYear

    • Brian says:

      With the parameters replaced by values should you want to play along at home. This runs for 20 years starting on 1/1/2016.

      let
      Source = List.Dates(#date(2016,1,1), 7300, #duration(1,0,0,0)),
      ConvertDateListToTable = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
      AddDayOfMonthColumn = Table.AddColumn(ConvertDateListToTable, "DayOfMonth", each Date.Day([Column1])),
      AddYearColumn = Table.AddColumn(AddDayOfMonthColumn, "Year", each Date.Year([Column1])),
      AddDayOfWeekColumn = Table.AddColumn(AddYearColumn, "Day of Week", each Date.DayOfWeek([Column1])),
      FilterFriday13 = Table.SelectRows(AddDayOfWeekColumn, each ([DayOfMonth] = 13) and ([Day of Week] = 5)),
      Friday13thsByYear = Table.Group(FilterFriday13, {"Year"}, {{"Number of Friday the 13ths!", each Table.RowCount(_), type number}})
      in
      Friday13thsByYear

  3. Alex Groberman says:

    =MATCH(3,MMULT(N(WEEKDAY(DATE(C3+ROW(1:100)-1,COLUMN(A:L),13))=6),1^ROW(1:12)),)+C3-1

    • David N says:

      It should be pointed out that Alex's solution, unlike some others, has the additional advantage of being non-array. My solution was nearly identical but with -- and SIGN instead of N and 1^.

      =C3-1+MATCH(3,MMULT(--(WEEKDAY(DATE(C3-1+ROW(1:25),COLUMN(A:L),13))=6),SIGN(ROW(1:12))),0)

  4. SunnyKow says:

    Sub Friday13()

    Dim StartDate As Date
    Dim EndDate As Date
    Dim x As Long
    Dim r As Long

    Range("C7:C12").ClearContents
    StartDate = CDate("01/01/" & Range("C3"))
    EndDate = CDate("31/12/" & Range("C3"))
    r = 7
    For x = StartDate To EndDate
    If Day(x) = 13 And Weekday(x, vbMonday) = 5 Then
    Cells(r, 3) = Month(x)
    r = r + 1
    End If
    Next
    End Sub

    • SunnyKow says:

      Calculate next year with 3 Friday 13th. Good for 100 years different from year entered in cell C3

      Sub ThreeFriday13()

      Dim StartDate As Date
      Dim EndDate As Date
      Dim x As Long
      Dim WhatYear As Integer
      Dim Counter As Integer

      Range("E7").ClearContents
      StartDate = CDate("01/01/" & Range("C3") + 1)
      EndDate = CDate("31/12/" & Range("C3") + 100)
      Counter = 0

      For x = StartDate To EndDate
      If WhatYear Year(x) Then
      WhatYear = Year(x)
      'Different year so reset counter
      Counter = 0
      End If
      If Day(x) = 13 And Weekday(x, vbMonday) = 5 Then
      Counter = Counter + 1
      If Counter = 3 Then
      WhatYear = Year(x)
      Exit For
      End If
      End If
      Next
      Range("E7") = WhatYear

      End Sub

      • SunnyKow says:

        *RE-POST as not equal did not show earliuer
        Calculate next year with 3 Friday 13th. Good for 100 years different from year entered in cell C3

        Sub ThreeFriday13()

        Dim StartDate As Date
        Dim EndDate As Date
        Dim x As Long
        Dim WhatYear As Integer
        Dim Counter As Integer

        Range("E7").ClearContents
        StartDate = CDate("01/01/" & Range("C3") + 1)
        EndDate = CDate("31/12/" & Range("C3") + 100)
        Counter = 0

        For x = StartDate To EndDate
        If WhatYear NE Year(x) Then
        WhatYear = Year(x)
        'Different year so reset counter
        Counter = 0
        End If
        If Day(x) = 13 And Weekday(x, vbMonday) = 5 Then
        Counter = Counter + 1
        If Counter = 3 Then
        WhatYear = Year(x)
        Exit For
        End If
        End If
        Next
        Range("E7") = WhatYear

        End Sub

  5. Devesh says:

    I've a doubt with using array formula here.
    In sample workbook, I tried to replicate the formula again.
    =IFERROR(SMALL(IF(WEEKDAY(DATE($C$3,ROW($A$1:$A$12),13))=6,ROW($A$1:$A$12)),$B7),"")
    For this I selected C7 to C12, and typed the same formula and pressed ctrl+alt+Enter. But in all cells it is taking $B7 (and not $B7, $B8, $B9.... etc)
    and since it is array formula I can't edit individual cell.
    Please guide.
    Thanks

  6. Pablo says:

    Hi Chandoo,
    Cool stuff. You need to clarify that the answer of 5 represents the 1st month in the year that has a Friday the 13th, and not the number of Fridays the 13th in the year. Subtle, but important difference.
    Thanks,
    Pablo

  7. Micah Dail says:

    I like the MMULT() function far more, but here's how I would have tackled it. It uses an EDATE() base and MODE() over 100 years. I'm assuming that 100 years is enough time to catch the next year with 3 friday 13th's. Array entered, of course.

    {=MODE(IFERROR(YEAR(IF((WEEKDAY(EDATE(DATE(C3, 1, 13), ROW(INDIRECT("1:1200"))))=6), EDATE(DATE(C3, 1, 13), ROW(INDIRECT("1:1200"))), "")), ""))}

  8. Jason Morin says:

    Finding all the Friday the 13ths in a Year:

    =SUMPRODUCT((DAY(ROW(INDIRECT(DATE(C3,1,1)&":"&DATE(C3,12,31))))=13)*(TEXT(ROW(INDIRECT(DATE(C3,1,1)&":"&DATE(C3,12,31))),"ddd")="Fri"))

  9. jmdias says:

    {=sum(if(day.of.week(DATe($YEAR;{1;2;3;4;5;6;7;8;9;10;11;12};13);1)=6;1;0))}
    just list the years

Leave a Reply