Power Pivot as the Core to your Power BI Solution

I’ve noticed a recent trend with many presentations and articles on Power BI and Excel functionality. Many of these presentations show how quickly you can take tools like Power Query to find and discover data and then quickly present it through tools like Power View and Power Map. These are really impressive demonstrations of what you can do in Excel in a matter of a few minutes to start with no data to quickly making business decisions through some form of a reporting layer.

While I really enjoy these demonstrations my one gripe is it doesn’t tell the full story. Take the example I just gave of discovering data with Power Query then presenting in in Power View.  In the excitement of taking the results of Power Query into Power View we often forget there is another important tool involved. I’m certainly guilty of this as well but I thought it was worth some explanation of what’s really going on behind the scenes.

By now you have probably learned that Power Query provides the option to put your data into Power Pivot immediately after you have finish transforming the data by selecting Load to Data Model.


But what if you don’t choose this option? You go with the default Load to worksheet setting and go about your business. Your data gets imported into an Excel worksheet and then you have to make a decision on how to visualize it.

This is what is often skipped in presentations. As soon as the decision is made to present your data through either Power View or Power Map the data in this Excel worksheet is automatically pushed into Power Pivot.

Let’s get a bit of an expanded view of how all these parts work together:


Another way of looking at this is based on the tool:

Power View

Power View reports can be developed from either Excel 2013 or SharePoint (On Premises) 2010 SP1 with SQL Server 2012.

If using Excel 2013 at some point the data must be placed in Power Pivot to visualize it in Power View.

If designing reports through SharePoint you can design reports on top of a Power Pivot workbook deployed to SharePoint, a connection to Analysis Services Tabular deployed to SharePoint or a connection to Analysis Services Multidimensional deployed to SharePoint.

Power Map

Power Map can currently only be done within Excel 2013 and Office 365 (Power Map preview is still available for On Premises Office). The data in Power Map must be based on top of a Power Pivot workbook.

Power BI Q&A

Power BI Q&A can only be done through a Power BI site and Office 365 subscription. The Q&A interaction is all based on top of a Power Pivot workbook that has been deployed to a Power BI site. You can optimize the Q&A interaction by adding things like synonyms to your Power Pivot workbook.


What you can get from this diagram is that Power Pivot is central to creating a complete Power BI solution. A well designed data model can only increase the chances of your reporting layer being successful. A poor design data model can make it difficult to make appropriate visualizations. So as you start exploring the Power BI tools make it a point to have a well designed Power Pivot data model.


  1. Hi,That is strange. Anyways, in the file which I potsed, paste the following VBA code in the Code windowSub split_cell_into_rows() Application.ScreenUpdating = False Dim varItm As Variant Dim rngText As Range Dim rows_source As Long Dim rngCl As Range Dim arrtext() As String Dim rows_in_output As Long Dim rows_for_formula As Long Set rngText = Worksheets(“Data”).Range(Range(“E2”), Range(“E2”).End(xlDown)) Worksheets(“Data”).Range(“A2069”).Value = “Subject codes” Worksheets(“Data”).Range(“B2069”).Value = “Subject” Worksheets(“Data”).Range(“C2069”).Value = “Count” Worksheets(“Data”).Range(“A2069:C2069”).Font.Bold = True Worksheets(“Data”).Range(“A2069:C2069″).Borders(xlEdgeBottom).Weight = xlThin i = 2070 For Each rngCl In rngText arrtext = Split(Application.WorksheetFunction.Trim(rngCl), ” “) For Z = 1 To Application.WorksheetFunction.CountA(arrtext) Worksheets(“Data”).Cells(i, 1) = arrtext(Z – 1) Worksheets(“Data”).Cells(i, 2) = rngCl.Offset(0, 1).Value i = i + 1 Next Z Next rngCl rows_in_output = Worksheets(“Data”).Range(“A” Rows.Count).End(xlUp).Row ActiveSheet.Range(“A2069:B” rows_in_output).RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes rows_source = Worksheets(“Data”).Range(“E2”).End(xlDown).Row Worksheets(“Data”).Range(“C2070”).Formula = “=SUMPRODUCT(1*(ISNUMBER(SEARCH(A2070,$E$2:$E$” rows_source “))))” rows_in_formula = Worksheets(“Data”).Range(“A” Rows.Count).End(xlUp).Row Worksheets(“Data”).Range(“C2070”).AutoFill Destination:=Range(“C2070:C” rows_in_formula) Application.Goto Reference:=Worksheets(“Data”).Range(“A2069”), scroll:=True Application.ScreenUpdating = True End SubHope this helps.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s