Author Archive

Displaying Top N, Bottom N, and “All Others” – Dynamically

November 12, 2014 12 comments

I just read Rob Collie’s post Displaying Top N, Bottom N, and “All Others”. Its a great post with lots of details.

I’ve come up with another approach that use the Set to achieve the similar outcome but dynamically. The final solution looks like the below

Dynamic TopN and AllOthers

The base data looks like the below:

base data

Both table as added to Model as the linked table.

I created the following calculated measure in the Power Pivot Model:


Total Sales:=SUM(Sales[Sales])

Rank:=RANKX(All(Sales),[Total Sales])

Top N Total Sales:=CALCULATE([Total Sales],FILTER(Sales,[Rank]<=[SelectedN]))

All Other Total Sales:=CALCULATE([Total Sales],FILTER(Sales,[Rank]>[SelectedN]))

In addition to the DAX fomula, I created two sets using MDX

Excel OLAP Set

Set Name: TopN

Set Definition: TOPCOUNT([Sales].[CustomerID].Children, [Measures].[SelectedN], [Measures].[Sum of Sales])

Set Name: AllOthers

Set Definition: [Sales].[CustomerID].Children – [TopN]

* Both of the above two sets has the checkbox “Recalculate set with every update” checked.

You can download the workbook (Excel 2013 version) at:

Categories: BI, BISM Tabular, DAX, Excel, PowerPivot Tags: ,

Another one, Thermometer Chart in Tableau

November 11, 2014 Leave a comment

Following up Gauge Chart in Tableau and Add Microsoft SQL Server Reporting Services charting capability to Tableau, here is another one: Thermometer Chart (value from -22 to 104(F) )


The Tableau workbook can be found at:

The image I generated can be downloaded :

Categories: BI, SSRS, Tableau Tags: , ,

Gauge Chart in Tableau

November 10, 2014 3 comments

Continue my previous post Add Microsoft SQL Server Reporting Services charting capability to Tableau, I’ll walk through how do I add gauge charts to Tableau.

1. go to:!AdventureWorksOffline%20Report%20Samples to download the sample reports to get a demo ready Gauge chart in SSRS. It use XML data source so that you can even run the report offline without connect to any data source.

2. change the gauge chart RDL to create a parameter and set the gauge indicator value to  derive from this parameter

3. change the chart size and report page size. In my test, I set all of them to 5cm. I also set margin to 0cm so that there is no gap around the gauge.

4. deploy to the SSRS report server.

5. navigate to the report management page and create a data driven subscription. Basically, the data driven subscription query returns a table with 100 rows to get value from 1 to 100. The data driven subscription loop through this query and generate the gauge chart one by one and push to a shared folder location.

6. copy the generated 100 TIFF images to Tableau’s custom shape folder C:\Users\George.Qiao\Documents\My Tableau Repository\Shapes\MyGaugeChart\

7. Create Tableau worksheet and enjoy! Below is the one I created:

Gauge Chart in Tableau

To play with it, you can go to

For those one who want the gauge chart images, here is the link:

Categories: BI, SSRS, Tableau Tags: , ,

Add Microsoft SQL Server Reporting Services charting capability to Tableau

November 10, 2014 3 comments

Tableau is great for its interactivity in dashboard while Microsoft SQL Server Reporting Services (SSRS) is great for its pixel perfect reporting. When we add them together, they are truly awesome!

SSRS has a rich out of box charting library and a few 3rd party add-ons, e.g. Nevron. You can also use .NET drawing library to perform custom drawing in SSRS (Ref: In addition, SSRS is able to use Google Chart API to render chart, such as Venn diagram etc.

ssrs chart types


SSRS has powerful expression language support and tons of properties to precisely control the chart rendering and be able to export to various formats. TIFF, one of the output format, gives us the ability to prepare custom images, which can be used within Tableau as custom shapes. SSRS has another great feature, mighty “Data Driven Subscription” (be aware, SQL Server Enterprise Edition only!). Combining the image format export and data driven subscription, we can automate the Tableau custom shape image generation.

In next blog post, I’ll show you how to add gauge charts into Tableau.

Categories: BI, SSRS, Tableau Tags: , ,

News On SSAS Data Source Support In Power BI

November 7, 2014 Leave a comment

Chris Webb's BI Blog

Yesterday we heard (again) that SSAS will be supported as a data source for cloud-based reports in Power BI. Today, in a session, two new important details on this emerged:

  • It will work with both Tabular and Multidimensional
  • It will connect as the user running the query, so SSAS security (eg dimension security) will work just the same as it does on-premises. No special setup will be needed; there were no details apart from the fact it will work using the EffectiveUserName connection string property.

I’m sure a lot of people will be interested to hear this…

View original post

Floor Map Visualisation

November 6, 2014 3 comments

In a recent POC project, I have to produce the data visualization over custom images, namely, floor maps. I’ll briefly talk about what I did for Excel 2013 and Tableau 8.2.4
Excel 2013

Excel 2013 floor map visulisation

The only option is to use VBA Macro. I know, I know, VBA should be the past and we should avoid using it. However, with Excel 2013, it is the only option. Basically, I insert a image (floor map, PNG format preferred). “Format” ribbon –> “Color” –> “Set to Transparent Color”. Once you got the floor map displayed, “Insert” ribbon –> insert a shape to overlay the shape on top of the floor map. You can also set the shape to be transparent, as shown below. Of course, in the final solution, the transparent level should be controlled via the VBA code.

Excel Format Shape Pane

Excel 2013 allow you to assign Macro to all your shapes and custom images and text box. This is the entry point you can do some very powerful interactive features to your workbook.



Tableau 8.2

Tableau is no doubt the best commercial data visualization software and the overall dashboard design experience is awesome.

Tableau 8.2 floor map visulisation

Tableau 8.2 floor map visulisation

Categories: BI, Excel, Power BI, Tableau Tags: , ,

Power Query with SSIS OData Feed Publishing Components

November 6, 2014 Leave a comment

Power Query won’t be able to connect to Oracle / IBM DB2 database unless the driver is installed locally. In many cases, we cannot freely install the driver due to enterprise security policy and lots of other reasons. And to mass distribute the diver to client PCs is another big issue. SSIS Data Feed component removes this gap via exposing complex ETL as a single SQL Server database view which can be queried by Power Query directly. With SSISDB introduced in SSIS 2012, powerful auditing and performance logging can be enabled with the help of out of box reporting features as well as lots of nice CodePlex community projects.

In a recent project, I use this technic to enable a scenario that an end user is able to query a SQL Server database view which actually invoke an ETL job in real time and streaming data back to Excel. If you do have the Power BI subscription, you can even share the Power Query through Power Query Data Catalog and become searchable by colleagues. To take further, I build an ASP.NET as a query register and capture some metadata of the query. Then I use Varigence Mist (BIML IDE, a super powerful tool!) to dynamically generate the SSIS packages on the fly and deploy to server via Power Shell and create a view on top of it. It is truly awesome and I’m proud of what I achieved.

The only drawback is that the Project Deployment does not support incremental deployment at the moment. I wish in next SSIS release, the incremental deployment can be implemented so that we can add additional SSIS Data Feeds without redeploy the entire project.