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.
 
								

 
								 
								 
						









14 Responses to “How many ‘Friday the 13th’s are in this year? [Formula fun + challenge]”
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
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
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
=MATCH(3,MMULT(N(WEEKDAY(DATE(C3+ROW(1:100)-1,COLUMN(A:L),13))=6),1^ROW(1:12)),)+C3-1
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)
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
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
*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
earlier*
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
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
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"))), "")), ""))}
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"))
{=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