14 Tips to Let Your Tableau Income Statement Shine
Sep 15, 2023Klaus Schulte
I recently shared my makeover of the Tableau Income Statement (+Budget) accelerator on LinkedIn and on Tableau Public. It’s a pure Tableau viz, without any data preparation or map layers in place.
I have used several tricks here, to achieve this layout in a one sheet view and I’m happy to share them all 🤓.
I create fake axes to being able to bring text columns between my visualizations and to format and design them to my preference. Not possible with default Tableau text tables.
Building a dual fake axis with different values and a corresponding alignment of the text will allow you to create two sub-columns within one column of your table.
I’m using COUNTD([KPI Breakdown] and FIRST() and LAST() to create customized Header Tags from different fields, including customized total tags without the need to duplicate the data.
I’m using default total formatting from the format pane to format my totals differently from my other table rows (font size, font style, shading)
I use the title to create fake field labels for my columns.
Based on my header definition in 3 I’m applying different mark formatting for my rows and my totals.
I’m also combining my mark formatting with my main performance logic (here: change in margin) to point my audience to the most important rows (smaller share, less efficient).
That’s the hardest part. To add time series to your table when having two continuous fields on rows and columns, you need to normalize the data first, and then use SIZE() to define a different y-value for the time series than for all your other (one-mark) columns.
No, this is the hardest part. To create a dual axis chart with two different metrics (current year and prior year), SIZE() is not enough to tell Tableau where to use which metric. Smart people like Ludovic Tavernier and Samual Parsons came up with a dimension test. This is what I used here.
To create my dual axis two-metric time series with normalized data I needed to normalize across these two metrics. Did you know that MAX or MIN don’t aggregate in this case, but give your the max-/min value even for aggregates? Fascinating…
My favorite part: to create the waterfall chart in this set up with two continuous fields on rows and columns, we need to use the bar mark type instead of the gantt mark type.
Add a reference line to your fake axis with a constant of 0 to create a fake zero line.
To show normal sums for your table rows and a cumulative result for your totals on sub total level (Gross Profit, EBIT, Net Income), you need to make your metric a running sum, and compute using the sub total dimension (see also this blog).
Since I’m calculating my Totals in the table, I need my values with negative and positive signs. To hide the negative sign in the view, I’m using a custom number format.
That’s a lot, isn’t it?
For a deeper dive, I recommend reading this great blog by Rosario Gauna where she also shares lots of tips and tricks. For a deeper dive into all things “visual table” I can also point you to Steve Adams’ and my “EAT Tables” course materials which are available here.
Thanks for reading! Feel free to add comments here, you can also find me on LinkedIn!