Yesterday while going through my feeds, I have landed on this post about the demographics and use-figures of various social networking (2.0) tools, et al (by businessweek) on think:lab blog. When I looked at the BusinessWeek’s graphical representation of demographics and usage figures of social networks, the first thought that came to me is, “well, this is something challenging to do in Excel“. So I started creating the chart in the most famous cell software :D, just to show you how the graph looked on BW site (click on it to see the bigger version),
(Download download the art of excel charting spreadsheet)
First up I tried creating a graphlet, a 10 by 10 cell grid that can be filled by ‘1’s based on a number between 1 and 100. The ‘1’s should be filled from left to right or right to left based on direction mentioned in a cell.
This task is simple, lets say the grid is from a1 to j10 and a11 has ‘the number of cells to be filled’ and a12 has the direction (either “R” or “L”)
The formula for any cell in the range of a1 to j10 would be,
= IF((ROW($a$10)-ROW())*10+11*(IF($a$12=”R”,0,1)) + (-1)^(IF($a$12=”R”,0,1))*((COLUMN($j$10)-COLUMN())+1)< =$a$11,1,"")
the above formula essentially means,
if direction is Left to Right,
if row of the cell * 10 + column of the cell is less than or equal to a11
return “1”
else return “”
else
if row of the cell * 10 + 10 – column of the cell is less than or equal to a11
return “1”
else return “”
Once I have the grid filled with required number of 1’s, I have applied conditional formatting (read: Creating cool dash-boards using excel conditional formatting) to change cell’s a ‘1’ in them to some color and blank ones to gray like this,
The output was something like this,
Now all I have to do is multiply this over the entire 7 columns and 6 rows like the BW’s graph and change the fill colors in conditional formatting. The final output looked something like this (click on it for a bigger version),
To end with, I have found out that doing this type of charts doesnt take much time although you need to have the creative juices to come-up with formats like this. What do you think?
For those of you who want to see how this is done and do a little bit of playing around, download the art of excel charting spreadsheet.
Also read:
- Say good-bye to default chart formats
- Creating cool dash-boards using excel conditional formatting
- PHD’s Excel posts
PS: the images are from BusinessWeek.


















11 Responses to “MLB Pitching Stats Dashboard in Excel+VBA by our VBA Class Student”
Hey Dan,
Thanks a lot... this is too good 🙂
Awesome stuff Dan! very impressed..
Thanks guys.
Some nice ideas in there, thanks for sharing. I noticed the list with teams has a missing value though ('Arizona Diamondbacks'). Also when manipulating Pivot Tables with VBA you should be really careful not to try to select a value that isn't in the Pivot Table, if you do all hell breaks loose 🙂 That's not the case here but just some advise as I learned the hard way...
Ah.....ya caught me.
dnrTeamName drives both the charts and the drop down list. It refers to:
=OFFSET(PvtTeams!$A$6,0,0,COUNTA(PvtTeams!$A$6:$A$40),1)
If you change A6 to A5, it fixes that little issue.
A better question though, who actually cares about the Arizona Diamondbacks?
🙂
Excellent post. Thanks
Great job, Dan! Thanks a million!
[...] MLB Pitching Statistics Dashboard [...]
Gr8 work Dan
Hi,
I downloaded file, but looks like everything is in xml. Was there suppose to be excel file as well?
Thanks!
I'm late to the party, but seeing this file in action and studying the underlying data in this Excel file has been AWESOME. I have TONS of new ideas to implement in my work files now. THANK YOU Dan and Chandoo!