This is a guest post from Aaron Henckler.
Waterfall charts are great, especially for visually showing the contribution of parts to a whole. While there are several tutorials on how to make a waterfall chart online the end products of these tutorials rate low on the visually appealing scale.
The principle problem with these charts is the separation between the elements of the waterfall. They are always either pushed together (Example A) or left apart, without element connectors (Example B):
Example A

Example B

Many users of waterfall charts employ the separated (default) version (example B) opting to add in element connectors manually via Insert>Shapes>Line on the Excel tool bar. The frustration with this approach is that all too often the values of the chart elements will need to be updated or changed forcing user to manually readjust each of their connector lines in turn.
With some simple charting trickery in Excel 2007 one can easily make a waterfall chart with connectors that will update automatically as element values are changed.
A Better Waterfall Chart

Steps to Building a Better Waterfall Chart
List of data series (columns) needed for your chart:
- Horizontal Axis Labels: in the example above North, East, South and West.
- Base Values: What your element values will “sit on.” Essentially this is the white space beneath each charted element shown above.
- Element Values: the meat and potatoes of your chart – the value of your elements as you want them to appear (above these are 40, 30, 20, 10 and 100).
- Label Spaces: This is optional but it allows you to place the value of you data elements on top of their respective bars (this avoids the use of the annoying Label Position options available after one has used Add Data Labels).
- Label Connectors: This is the key item needed to create the chart as shown above. You will need one column (series) for each of the data elements (excluding one for the total). For the chart above, four label connector series are needed.
Step 1: Enter all of the required series in a worksheet:

- Horizontal Axis Labels – self explanatory
- Base Values – A running total of the subsequent Element Values (Column C). Whereas nothing proceeds North in the example above leave its base value blank. Do the same for Total.
- Element Values – These are whatever numbers you want to highlight in your chart. These are represented by the blue column segments in the above chart.
- Label Spaces – Again this is optional. These will eventually hold text labels for the Element Values (Column C). The numbers here should all be the same and be some number about 1/4 to 1/3 the value of your lowest Element Value.
- (to H. ) Connectors – Connectors 1 to 4 correspond to Axis Labels North to West in the example above. In the respective Connector column make the cell at the row corresponding to the related Axis Label equal to the sum of Column B + Column C (Base Value + Element Values). Enter the same value for the cell beneath.
Step 2: Chart data and adjust
1. Select your data, here A2:H6, and go to Insert>Charts>Column>2-D Column>Stacked Column>OK (to exit). Your chart should look like this:

2. Switch column and row data by right-clicking within the chart and going to Select Data…>Switch Row/Column>OK (to exit). Chart should now look something like this:

3. The top colored column element in each column (purple, aqua, orange and baby blue, respectively) is what will become that Element Value’s connector. To convert to these columns to connectors, in turn, right-click on the series (the first one is the purple column element) and go Change Series Chart Type…>Line>Line>OK (to exit). Repeat this process for the other connector column elements (aqua, orange and baby blue). After this step your chart should look like this:

4. Follow this up by formatting each connector in turn. Right-click on the connector and go Format Data Series…. Consider making the Line Color>Solid Line>Color black, Line Style>Width .25 pt and Line Style>Dash Type>Square Dot. Play around with these options as you see fit to get the best look. Again, do this for each connector.
5. Remove grid lines (optional), delete the Legend (necessary). Your chart should now look like this:

6. Go into you Base Values series (blue column element in the chart above) and eliminate the color fill and borders: right-click on a blue column element and go Format Data Series….>Fill>No Fill and Border Color>No Line>Close (to exit).
7. Format your Element Values series (red above, using same process in Step 6 to change the fill color and add a border.
8. Right-click on your Label Spaces series and go Add Data Labels…. Don’t worry about the value on the labels for now, they’ll be changed in the next step. Follow this up by formatting the Label Spaces series just like how the Base Values series was formatted (in Step 6). Make it so there is no fill and there are no borders. This is what you should now have:

9. All that remains is to convert your labels to the values of the Element Values. To do this for each label: click on the specific label twice (so that only the box for that label appears, as below).

Click a third time on the edge of the box that appears and then type the equals sign “=”. Now go back to your data table and click on the cell of the Element Value that you want appear in the label. Then press enter. This links the value of the label to the Element Value (if your Element Value ever changes so too will the text in this label). Repeat this for the other data labels in turn. The result is your Better Waterfall Chart:

Download the Waterfall Chart Template:
Please download the waterfall chart template from here [.zip version here]
Final Thoughts
I hope you will agree that this waterfall chart is more visually appealing that the examples at the start of this tutorial. In addition to a more professional look this waterfall will fully update (step heights, labels, connector positions) automatically whenever you change your Element Values. While the process of implementing this form of waterfall chart may at first seem cumbersome it can be quickly implemented with some practice and is a great item to have in your charting toolkit. Enjoy.
Note from PHD:
- Thank you so much Aaron. You have taught us a very valuable tutorial. I really appreciate your effort in putting this together.
- If you need to make a lot of waterfall charts, I recommend trying Jon Peltier’s Waterfall Chart Utility.
Hello there, Reader: If you like this waterfall chart tutorial, please drop a note of thank you to Aaron through comments.
















One Response to “SQL vs. Power Query – The Ultimate Comparison”
Enjoyed your SQL / Power Query podcast (A LOT). I've used SQL a little longer than Chandoo. Power Query not so much.
Today I still use SQL & VBA for my "go to" applications. While I don't pull billions of rows, I do pull millions. I agree with Chandoo about Power Query (PQ) lack of performance. I've tried to benchmark PQ to SQL and I find that a well written SQL will work much faster. Like mentioned in the podcast, my similar conclusion is that SQL is doing the filtering on the server while PQ is pulling data into the local computer and then filtering the data. I've heard about PQ query folding but I still prefer SQL.
My typical excel application will use SQL to pull data from an Enterprise DB. I load data into Structured Tables and/or Excel Power Pivot (especially if there's lot of data).
I like to have a Control Worksheet to enter parameters, display error messages and have user buttons to execute VBA. I use VBA to build/edit parameters used in the SQL. Sometimes I use parameter-based SQL. Sometimes I create a custom SQL String in a hidden worksheet that I then pull into VBA code (these may build a string of comma separated values that's used with a SQL include). Another SQL trick I like to do is tag my data with a YY-MM, YY-QTR, or YY-Week field constructed form a Transaction Date.
In an application, I like to create a dashboard(s) that may contain hyperlinks that allow the end-user to drill into data. Sometimes the hyperlink will point to worksheet and sometimes to a supporting workbook. In some cases, I use a double click VBA Macro that will pull additional data and direct the user to a supplemental worksheet or pivot table.
In recent years I like Dynamic Formulas & Lambda Functions. I find this preferable to pivot tales and slicers. I like to use a Lambda in conjunction with a cube formula to pull data from a power pivot data model. I.E. a Lambda using a cube formula to aggregate Accounting Data by a general ledger account and financial period. Rather than present info in a power pivot table, you can use this combination to easily build financial reports in a format that's familiar to Accounting Professionals.
One thing that PQ does very well is consolidating data from separate files. In the old days this was always a pain.
I've found that using SQL can be very trying (even for someone with experience). It's largely an iterative process. Start simple then use Xlookup (old days Match/Index). Once you get the relationships correct you can then use SQL joins to construct a well behaved SQL statement.
Most professional enterprise systems offer a schema that's very valuable for constructing SQL statements. For any given enterprise system there's often a community of users that will share SQL. I.E. MS Great Plains was a great source (but I haven't used them in years).
Hope this long reply has value - keep up the good work.