A Fight to the Death* Between Tableau, Power BI and SAP Analytics Cloud

A Fight to the Death* Between Tableau, Power BI and SAP Analytics Cloud

I’ve only very recently picked up Tableau as a dashboarding tool and thought I would learn more about it by trying to create the same dashboard in three of the main visualisation apps available today. I used Tableau Public, the free download of Power BI desktop (with my Office 365 account it is free at least) and our SAP Analytics Cloud environment.

I used the same data for Tableau Public and Power BI – an Access database for the Xtreme Mountain-Bike Company (Crystal Reports fans will know what I’m talking about). As SAC can’t connect to Access I had to cheat a little bit and use a CSV exported from Tableau – though we’ll see that didn’t really help me anyway.

I only wanted to give myself a short time on each so I didn’t spend ages sorting out formatting and titles on the dashboards. I started with this requirements document:

I think you’ll agree it’s a comprehensive document with everything a report builder needs to know.


Prior to this I had spent a grand total of 2 hours with the product messing about, and about the same again watching YouTube tutorials. My first impressions were that it looked slick and well-laid out, not too busy. My preconception of Tableau was that it was great at visuals but lacked in data-modelling and depth of analysis. Let’s see if I was right.

Connecting to the Access database was very easy and the tool easily joined the tables together. I was able to add a where-clause to one of the joins to make it filter to the USA only.

As it brought the data into the app it correctly identified dates, numbers and geographical columns (though not 100% - I had to indicate that the Region column equated to ‘state’ level).

I created the map first. The design model for Tableau involves creating a visualisation per sheet then combining them onto a dashboard later – a bit like how SAP Lumira used to work. Tableau feels streets ahead of the old SAP Lumira though (and even the new Lumira Discovery).

Wanting to use ‘order amount’ as my main measure I had to set a default currency format for it in the app – if I was using an SAP tool I might have this done in the universe.

The map came together very easily and the colouring and text was clear. Adding a colour range to denote value was simple, as was deciding what to display as labels.

My next visualisation was a table showing ‘product type’ by ‘order amount’ and a calculated field called ‘order count’. The calculated field was simple to do, as was colour coding the table cells to highlight values.

I wanted a bar chart next, displaying ‘order amount’ by ‘customer name’. However there are hundred of customers overall so I wanted to limit it to just the top 10. This is the first stumble for me with Tableau as working out how to rank the customers was not intuitive. I had to create a ‘set’ with the top ten rule in it, then apply this as a filter. Most other tools I work in just have a rank button on the chart or menu.

I used a tree map lastly to show ‘product names’ by ‘quantity’ and ‘value’ (another calculated field). I managed to easily colour code all the visualisations to bring them together design-wise.

Onto designing the dashboard with all of these elements. Dragging and dropping each one in turn was ok, but resizing each one afterwards was a little clumsy, you can only resize in certain directions I found. This was also when I tried to connect the objects in terms of drill-down or filtering. I want to filter by clicking on each chart so we can journey through the data. Ideally the direction of travel would only be one-way but I wasn’t experienced enough with Tableau to know if that is possible.

Instead I took the easiest route and used the ‘use as filter’ button available on each chart

This made it very easy to set up interactivity but also revealed a problem – my Top 10 Customers set was not working as intended – I wanted the top 10 to be within each state as selected, or each product type, but instead it only stayed on the overall top 10, filtered by a selection (ie it went blank if none of the top 10 overall customers were in the selected state).

To counter this I googled the problem and found I need to change the filter ‘context’ on the original worksheet. This is done by right clicking the action filter (one applied from the dashboard) and choosing ‘add to context’.

The drills worked as intended then and all looked seamless. I then added the three other filter panels (for ‘year’, ‘employee ID’ and ‘courier’) and again these integrated easily (once I had found the correct option from the worksheet I had added them to).

As I was using Tableau Public, my only save option was to the public cloud area. I followed that route and it opened it up in my profile automatically on the website:

I’m not sure why the logo went missing – possible copyright issue perhaps or just a bug.

The build was around 2 hours including note taking and googling for stuff I didn’t know. Frustration was kept to a minimum and the process of creation felt smooth and intuitive. My preconception of a certain shallowness in the tool was challenged - I’m sure I’ve only scratched the surface of what it can do and the options for adjusting individual visualizations are much more sophisticated than most other tools I have used.

I think Tableau Public would struggle with less well-structured data, or if the database you connected to was not well modelled. A complex application database with many look-ups and calculations required would stretch the back-end but then that is true for all these tools.

Power BI

With Microsoft’s tool I had a little more experience before I came to it for this exercise, perhaps a couple more hours in total, but not as recent, so I still found myself googling stuff. Coming at it direct from Tableau I also got more frustrated as things did not feel as straight-forward all of a sudden.

Connecting to the data was as easy as it should be for one Microsoft product to talk to another. The table links were added automatically and all looked good. However I couldn’t see where to apply my “USA” filter on the table or join, and my attempt to filter it on the view of the ‘customer’ table did not work – I was bringing all the countries through to the report regardless. In the end I applied a page-wide filter for “USA” and moved on.

I had to point out to Power Bi that ‘country’ was a geographical element, and do the same with region, though it had got all the other data types correct.

My opinion of the map element is that it is not as pretty as Tableau’s, it seems to be blurry somehow and the borders are not as clear. Sizing and zooming is not as simple either.

When I came to add the second element, the table for sales by ‘product type’ I found that ‘order amount’ was not calculating correctly, it was showing the grand total on every row. I eventually found that it worked if I edited the table joins, randomly changing the ‘cross filter direction’ to ‘both’ instead of one way. Not sure why this worked or what the point of the default way of working was:

I built the top 10 customers chart again and found that Power BI’s default interaction between objects on the page is to highlight rather than filter. I went in to the format menu and edited the interactions and it worked smoothly. I quite liked the highlight option itself as it showed the selected value alongside a faded view of the overall, but it wasn’t what I was looking for from my spec (it looked best on the tree-map btw).

To get my ‘order value’ calculation working properly I ended up doing it in the data layer as a new column on the ‘orders detail’ table as it didn’t work trying to build it in the report directly.

Adding extra ‘slicers’ to the report page was easy, as was the logo and the title object.

My impression of Power BI was that it was slightly more technical and less intuitive than Tableau. The GUI feels busier and less easy to navigate. I believe the DAX language and other bits under the hood are very powerful though and again I have only scratched the surface of its potential.

I spent less time worrying about formatting on this one and so it took me about an hour from start to finish.

SAP Analytics Cloud

I have already spent many hours with SAC in the last year or two, but fewer actually trying to wrangle a manual dashboard out of flat data. I normally use the automated options as I demo it to prospects, and then focus on the predictive and forecasting options. So trying to create a dashboard from scratch to a spec would be a fair challenge for me.

I exported the dataset from Tableau as SAC cannot connect to an Access database. This lead to problems as the CSV contained numbers formatted as text – I went back to edit them in Excel and re-imported to SAC the resulting spreadsheet.

The import was quick but I soon found an irritating problem – I set the region column as my geo-location column, but SAC did not recognise the two-letter state abbreviations for what they were. Cue 30 minutes of me having to laboriously change each of the 40+ states. I found it quite odd that the two-letter state codes are not automatically recognised like they had been in the other tools.

Adding a map to my story I came across another issue and one that I have found before – the map object doesn’t automatically assume you want to use the current data-model, you have to specify it manually. I’m sure this serves some purpose as it has been in the product for a while now.

I had to fiddle with the map options to get it to represent my states-based choropleth chart but got there in the end. I do like the SAC maps but now I’ve seen Tableau’s I’m not sure whose is better.

Adding a top 10 to the customer chart was very simple, as was creating the tree-map. The extra filters, or input controls as SAP styles them, were also quick to add.

The final part was trying to get all of the charts to interact in a flow with the ‘linked analysis’ option. The initial action from the map was easy. I ended up with them all affecting each-other but also themselves (so you end up with single bars or rows on charts after filtering). It is also less clear as a user how to remove filters to go back to the overall view once a few have been pressed, and using them in conjunction with the input controls often clears your chart selections.

I spent an hour and 30 minutes on the SAC dashboard, and there were a few moments of swearing involved. Perhaps this was because I thought I knew what I was doing with it and so tried more things before googling the answer, perhaps it was because it is less well-organised.

The front-end of SAC is very slick and the powerful cloud-based elements such as smart insights and predictive analytics make it a compelling tool – however in my small experiment they did not contribute to the end result.

The best part of SAC is the lack of any installed element for this analysis. As it is browser based you can access the tools from any PC, and the output is immediately shareable with your colleagues.


This exercise was driven by a desire to learn more about Tableau, so I was probably more open to it and accepting of foibles than the other two tools. I felt that it was the most ergonomic of the three when it came to building visualisations. For such a light-weight test it felt like the best tool.

From an Enterprise perspective the data-modelling may be lacking – one of the biggest things we hear from customers about Tableau and similar products is the bottleneck in IT that can develop around creating the back-end queries and datasets. Technical experts are needed to assemble the data before business analysts can visualise it and extra wisdom. This also affects Power BI, it is only SAC that will benefit from the universe concept of pre-modelled data.

Power BI has a wider reach – it is bundled with many Office 365 subscriptions so it finds new users easily who can experiment with it for free. To get the most out of it you have to move to one of the paid tiers for distribution and scalability. But it has a large community around it and will be evolving quickly. It has an ever-expanding marketplace of new chart types that you can use to add your visualisation toolbox.

SAC can reuse any investment you have already made in on-premise SAP BusinessObjects development by accessing your universes, streamlining new queries from your databases and data-warehouse. It also has powerful predictive analysis algorithms built in to its basic package, and even more of this magic-future-tech in higher tiers as well as business planning opportunities too.

If I was tasked today to create a BI environment and output visualisations and dashboards to users with interactivity, I would still choose the on-premise BI platform with its universes and Web Intelligence tool. The universe concept prevents so much faffing about with SQL and data every time you want a new report, that once you’ve got it you never want to go back. WebI too is a very capable visualisation tool, especially in its latest guise. The Fiori launchpad even makes BObj look cool!

However from now on I will be looking at Tableau with envy and wishing WebI had a few more of its tricks and options (what are native WebI maps even for??).

(*not a fight and not to the death, more of a gentle comparison over an afternoon).