Pivot Tables are one of the fastest ways to summarise and analyse a large dataset from different angles. They're easy to set up, easy to edit, and can be refreshed with a single click — which makes them a natural pair with Power Query for automating regular reports.

Creating a Pivot Table is the easy part — knowing how to navigate the four fields (Filters, Columns, Rows, Values) is where it gets confusing.
Drag one or more fields into Filters, and they'll appear at the top of the table for quick selection — e.g. filtering Status to only show "Cancelled" sessions.

You can also filter by clicking the small arrow next to the field:

Straightforward once you see it in action — and you don't need both, one or the other is perfectly fine.

For more advanced tables, you can stack multiple fields in Rows or Columns — and the order matters. Putting State above Status groups statuses within each state; putting Status above State groups states within each status:

Values controls what gets counted or calculated. For non-numerical fields, Excel simply counts — here it's counting members per state:

For numerical fields you get more options — click the field and select Value Field Settings:

You can count sessions, sum total hours, or calculate max, min, average, product, and standard deviation.

Right-click any heading and select Field Settings:

Or go to Layout & Print and experiment — here we've enabled "Show item labels in tabular form" and "Repeat item labels":

The new layout:

Right-click and select PivotTable Options for more layout controls — including what to display for empty cells:

The best part: once the layout is set, it stays set.

Because Pivot Tables adjust constantly as data and settings change, VLOOKUP isn't reliable against them — column counts shift. GETPIVOTDATA is built for exactly this:
=GETPIVOTDATA(data_field, pivot_table, [field 1, item 1], [field 2, item 2]...)
Only the first two arguments are required — data_field (the table name, top-left of the table) and pivot_table (a cell reference to it). With just those two, the function returns the grand total, regardless of how the table's data changes:

Add more arguments to target a specific row or column:
=GETPIVOTDATA(data_field, pivot_table, [field 1, item 1])


Add further field/item pairs to target an exact intersection:
=GETPIVOTDATA(data_field, pivot_table, [field 1, item 1], [field 2, item 2]...)

The same logic extends to tables with multiple row fields:

Stuck on a Pivot Table setting we haven't covered? Let us know and we'll add it.
Get in touch