Excel Bullet Graphs
Bullet graphs provide an effective way to dashboard target vs. actual performance data, the bread and butter of corporate analytics.
Howmuchever effective they are, the sad truth is there is no one easy way to do them in excel. I have prepared a short tutorial that can make you a dashboard ninja without writing extensive formulas or installing unknown add-ins. So get out your shinobigatana and join me in a fresh excel sheet arena.
Before we create our first bullet graph, let us spend a few moments understanding these graphs. Stephen Few proposed bullet graphs as way to provide crisp view of “target vs. actual performance” numbers. Shown below is a sample bullet graph and how you would read it.

Read up more on this at PTS blog and on a Gauge chart that actually works.
Let us create your first bullet graph
Click here to download bullet-graph template excel sheet so that you can see while reading
Our technique of involves conditional formatting and simple formulas applied to a cell grid. Just follow these 4 easy steps:
Step 1: Prepare your data for charting
Since we are going to plot bullet graphs on a cell grid, we first need to normalize our data. I have chosen to plot each bullet graph on 20 cells in a row as shown in the raw grid shown to the right:
Assuming we have fictitious sales data like this:

You can normalize YTD sales figures using a simple formula like this : ROUND(YTD-sales/target*20,0)
Now that we have our data steaming hot, lets brew the graphs
Step 2: Lets make the raw grid formatted based on data
Now we will take the raw 20 cell grid in each row and conditionally format these cells so that we have background of the bullet graph drawn on them.
For eg. If the normalized sales data for Bad range is 7 and for OK Range is 15 then,
We will highlight first 7 cells lighter shade of gray, next 8 cells gray and last 5 cells with darker shade of gray.
I have shown the conditional formatting applied to these cells below:

When we are done, a sample row looks like this:

We have our cell grids ready now, lets shoot some bullets.
Step 3: Plot bullets on our graph canvas
Our final step involves print a bullet symbol (either – or + or | ) in each cell depending on one of the following conditions:
1. If the cell position (1,2,3 … 20) is equal to Year ago value and cell position is less than YTD value print a + symbol
2. If the cell position is equal to Year ago value and cell position is more than YTD value print a | symbol
3. If the cell position is less than YTD value print a –
4. Else print a blank
See the formula below:

Download the excel template for bullet graphs to understand this formula better
Step 4: Show off your bullet graphs, awe your boss or colleagues, bask in your Ninja glory
Unfortunately, I cannot tell you how to do this. I can only teach you to be a Ninja, but you have to be one to charm people with your tactics.
Shown below is another variation you can try. Also, you can experiment with the symbols printed (instead of + – | you can try other ASCII characters, for more download the excel sheet containing bullet graph templates)

Also try: Partition charts, Incell Graphs and much more.
Trackbacks & Pingbacks
- Pingback by 500+ subscribers, great content, wow this site must be good ! | Pointy Haired Dilbert - Chandoo.org on July 31, 2008 @ 2:46 pm
- Pingback by In-Cell Bullet Charts | PTS Blog on November 15, 2008 @ 12:23 am
- Pingback by Comparison Chart w/ Form Controls : Tutorial & Download | Charts & Graphs | Pointy Haired Dilbert - Chandoo.org on March 23, 2009 @ 5:31 am
- Pingback by Sales Dashboards - Examples, Templates and Best Practices - Making Sales Dashboards using Excel | Pointy Haired Dilbert: Charting & Excel Tips - Chandoo.org on January 4, 2010 @ 9:37 am
- Pingback by Best Charts to Compare Actual values with Targets (or Budgets) - Charting Options for Excel | Pointy Haired Dilbert: Charting & Excel Tips - Chandoo.org on January 18, 2010 @ 5:14 am
- Pingback by Making a Dynamic Dashboard in Excel [Part 1 of 4] | Pointy Haired Dilbert: Learn Excel Online - Chandoo.org on March 16, 2010 @ 9:51 am
- Pingback by Making a Dynamic Dashboard in Excel [Part 2 of 4] | Chandoo.org - Learn Microsoft Excel Online on May 26, 2010 @ 1:44 am
- Pingback by What new chart types you want to see in Excel? [poll] | Chandoo.org - Learn Microsoft Excel Online on June 19, 2010 @ 10:34 am
- Pingback by Excel Dashboard Examples - Travel Site Dashboard - Review, Video & Download | Chandoo.org - Learn Microsoft Excel Online on August 4, 2010 @ 8:52 am
Comments
RSS feed for comments on this post. TrackBack URI


At Chandoo.org, I have one goal, "to make you awesome in excel and charting". This blog is started in 2007 and today has 350+ articles and tutorials on using excel, making better charts.

Interesting approach. I need to examine it a bit further. It looks easier to set up then a bullet chart in an actual chart, and it takes no effort to aling the charts in a table, because they’re already part of each row.
This is a nice tip! I am going to have to look at it and try to create on my own.
P.S. – I just ate your RSS.
@Jon.. Thanks for your review comments
@Tony: welcome to PHD blog. Sure let me know if you have any comments after trying this.. and thanks for subscribing to my blog
Very nice tip… easy to implement and to share (no macro).
Here is another option : http://sparklines-excel.blogspot.com/
Regards
Wow, just what I’ve been looking for. Hopefully the concept will work for what I need. I’m trying to dashboard when my process moves out of control to 1, 2 or 3 standard deviations above the mean. If it works, you’ve made me a ninja hero
Great and easy way to do a bullit chart. However, it would be much nicer in terms of graphical presentation if the lines would be continous istead of ‘broken’.
I tried to look for a true type font to help me on that but could’t find it. Anyone else maybe?
good tip! thanks!
Great work & inspirational stuff again.
However, I’ve downloaded the bullet graph template sheet to see how it’s put together, but when I ‘tab’out of the cells with the ROUND formulas in the figures below change (and the lines begin to distort).
How come this happens, and what have I done wrong?
Thanks.