 This week we are celebrating Office 2010 launch at chandoo.org
This week we are celebrating Office 2010 launch at chandoo.org
Office 2010 [download beta version | purchase], the latest and greatest version of Microsoft Office Productivity applications is going to be available worldwide in the next few weeks. I have been using Office 2010 beta since November last year and recently upgraded my installation to the RTM version (Ready to Manufacture, a version that is final and used for burning CDs that MS sells).
I was pleasantly surprised when I ran Microsoft Excel 2010 for first time. It felt smooth, fast, responsive and looked great on my comp.
This week, we are going to celebrate launch of Office 2010 by learning,
- What is new in Excel 2010
- Introduction to Excel 2010 Spark-lines
- New Conditional Formatting Features in Excel 2010
- Making your own ribbon in Excel 2010
- Using the Backstage View in Excel 2010
(with free upgrade to Office 2010 in June)
What is new in Excel 2010?
There are a ton of new and cool features in Excel 2010. My favorite new features are,
Sparklines

These are small charts that can be shown inside a cell and are linked to data in other cells.You can insert a line chart, win-loss chart or column chart type of spark line in excel 2010. They add rich information analysis capability to mundane tables or dashboards. We learn more about using them in tomorrows article.
[meanwhile: Learn how you can make sparklines in earlier versions of Excel]
Slicers

Slicers are like visual filters. They are an easy way to slice and dice a pivot table (what is a pivot table – tutorial). A sample slicer at work is shown above.
Improved Tables & Filters

When working with tables in Excel 2010, you can see the table filtering & sorting options even when you scroll down (the column headings – A,B,C… change to table headings)
[Related: Introduction to Excel Tables]
Also, in Excel 2010, data filters have a nifty search option to quickly search and filter values you want. (I still prefer the excel 2003 style one click filtering).
New Screenshot Feature:

Now, using Excel (or any other Office 2010 app) you can grab a screenshot of any open window. This could be very useful for those of us in teaching industry as you can quickly embed screenshots in to your teaching material (like slides or documents).
Paste Previews:

There are a ton of cool paste features buried in the Paste Special Options in earlier versions of Excel. MS has bought all these to fore-front with Paste Previews feature in Office 2010.
Improved Conditional Formatting:

Excel 2010 added a lot of simple but effect improvements to conditional formatting. One of my favorites is the ability to have solid fill in a cell based on the value in it. This provides an easy way to create in-cell bar charts.
Customize Pivot Tables Quickly

Now you can easily change pivot table summary type and calculation types from Pivot Table “Options” ribbon in a click (learn how to do this in Excel 2007 and earlier).
Also you can do what-if analysis on Pivots (I am yet to try this feature).
Customize Add-ins from Developer Ribbon

In Excel 2007, if you want to customize or add a new add-in, you have to circumnavigate cape of good hope. But Excel 2010 makes it a pleasant experience again. There are two buttons, right on developer ribbon tab using which you can quickly add, change any add-ins.
(also, it seems like developer ribbon is turned on by default, which is pretty cool.)
Customize Ribbons and Define your own Ribbons

One the most beautiful and powerful features about Office products is that you can customize them as you want. You could easily add menus, change labels, and define toolbars the way you like to work. It made us feel a little powerful and awesome. Then, for some reason, MS removed most of these customizations in Office 2007 leaving us frustrated and powerless. Thankfully, they restored some of that in Office 2010. In this version of office, you can easily add new ribbons or customize existing ribbons (by adding new groups of tools).
One File Menu to Rule them all

One of the biggest WTFs in Excel 2007 is Office Button. It wasn’t immediately clear for most of us, how we should save or work with existing files as everything was hidden behind the office button. Office 2010 rectified that problem beautifully by restoring “File” menu. But the engineers at MS didn’t stop there. They also added a host of other powerful features to the file menu and branded it as “backstage view”. Kudos! [Learn more about File Menu and Backstage view on this Friday]
Many more new features:
Not just these, there are many more subtle UI enhancements, features and improvements in Excel 2010 (and all other Office products). For eg. macro recorder now works with charts too, you can double click on chart elements to format them, you can collapse ribbon with a click, there is a new UI for solver, lots of statistical formulas have improved accuracy, there is exciting PowerPivot Add-in (my review of powerpivot) to let you do poweful BI and Analysis work right from Excel and many more. [read about all changes in Excel 2010 at TechNet]
You could win a Copy of Office 2010 – Home & Student Edition
Through out this week, I will be posting about Excel 2010’s new features and how you can use them to be even more awesome. I have 2 3 free licenses of Office 2007 Home & Student Edition (free upgrade to Office 2010) to giveaway.To qualify, all you need to do is drop a comment on any of the 5 posts this week.
The contest is sponsored by Microsoft and winners will be chosen randomly.
Addendum: I got 3 licenses to giveaway. 2 of them for Indians and one for a lucky international reader.
So, what are you waiting for? Go ahead and tell me what your favorite feature in Excel 2010? Leave a comment to win an Office license.
Things to do:
- Download and install beta version of Office 2010
- Get a copy of Office 2007and upgrade it free to Office 2010 
- Catch up with all the Excel 2010 action at MSDN blog
- Pre-order an Excel 2010 book and one-up your knowledge (I recommend Excel 2010 Bibleor Excel 2010 Formulas by John Walkenbach). 
 
								

 
								 
								 
						









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