August 26, 2011

Excel: How to create a dual axis chart with overlapping bars and a line

I came across a challenge last week while working on a project.  I needed to create a dual-axis chart, with two bars on the primary axis and a line on the secondary axis.  Tableau makes this task incredibly easy, but I needed to do this in Excel.  Well, I really didn’t HAVE to create the chart in Excel, but others needed to be able to update the chart and they, gasp, don’t have a Tableau license.

It’s easy enough to create a dual-axis chart in Excel, if you want the bars side by side.  However, I needed overlapping bars.  There’s no standard chart design within Excel to accommodate this, which meant I had to come up with a workaround.  I perused the internet and didn’t find anyone else that had done this (I’m sure people have done it, but haven’t shared their work), so I wanted to share it with anyone that may need to do it in the future.

A sample Excel workbook can be found here (if your corporate network blocks Dropbox, send me an email and I’ll forward it to you).

The final product looks like this:

image

Steps to reproduce:

  1. Highlight your data, insert a 2-D clustered column chart

    image
  2. Change the bar and line colors if desired
  3. Right-click on one of the bars that you want on the secondary axis and choose Format Data Series
  4. Change the Plot Series On option to Secondary Axis
  5. With the bars on the secondary axis still highlighted, from the Chart Tools Design menu, change the Chart Type to a line

    image
  6. Right-click on one of the bars that are on the primary axis and choose Format Data Series
  7. Change the Series Overlap to 100%

    image
  8. The two bars on the primary axis now completely overlap each other.  You’re almost done!
  9. Remove the gridlines (important…I’ll explain in a bit) and add the axis labels (I hate it when people create dual-axis charts in Excel and don’t add the axis labels!)

    image
  10. Give the bars the “overlap” look (these are the most important steps to give the bars the proper) by right-clicking on the gray bar (i.e., the bar that’s in the first column of the table) and choosing Format Data Series
  11. Choose the Border Color option, select Solid Line and set the color to the same color as the bar (in my case, light gray)

    image
  12. Choose the Border Styles option, change the Width to 10pt (or whatever floats your boat) and change the Cap type to Flat and the Join type to Miter

    image
  13. That’s it!  You’ve create a dual-axis chart in Excel with overlapping bars on the primary axis and a line on the secondary axis.

    image

Now wait, I mentioned earlier that you should delete the gridlines.  This is critical because we’ve changed the height of the bar in the back by adding the border.  This leaves you with a couple of options:

  1. Make the border of the bar in the back really thin, but this makes it challenging to see the overlap
  2. Change the data to account for the thickness, but it’s kinda scary to me to alter the data because if you mouse over the point you see the original data
  3. Leave the bars thick so that you can clearly see the overlap

I would go with option 3 because the naked eye won’t be able to discern the difference to the bar height anyway.  The purpose of the chart, after all, is to give the overall trends and comparisons anyway, not focus on the original data. 

If that “change” in the bar size really bothers you, then simply add the data table under the chart:

image

Don’t we all love challenges!  I know I do.