Power BI Migration (Part 4)- Tableau Style Parameters in Power BI (Step by Step)

In this post, we get practical.

We’ll rebuild a very common Tableau pattern in Power BI:

1) A Cluster selector (City, Region, Category, etc.)
2) A SubCluster selector that depends on the chosen Cluster
3) A bar chart that updates dynamically based on both

To keep the logic clear, we intentionally use one bar chart only. Once this pattern is understood, it can be reused across any visual.


What we’re building

Goal:
Show Total Events by a dynamically selected dimension.

User flow:

  1. Select a Cluster (e.g. City, Region)
  2. Select one or more SubClusters (e.g. London, Manchester)
  3. The bar chart updates automatically

This mirrors how Tableau parameters are commonly used.


Step 1: Create a Baseline Measure

Before adding any parameters or slicers, always confirm that your numbers are correct.

Go to Modeling → New measure:

This is the core metric that all visuals will use.


Step 2: Build the Bar Chart (No Parameters Yet)

Bar chart

  • Axis → [City]
  • Values → Total Events

Why this step matters:
If values are wrong now, they’ll only get harder to debug once parameters are added.


Step 3: Create the Cluster Parameter (Tableau-Style)

In Tableau, this would be a parameter.
In Power BI, we use a disconnected table + slicer.

Go to Modeling → New table:

Add a Slicer:

  • Field → Cluster Selector[ClusterLabel]
  • Turn Single select = On

Step 4: Create the Sub-Cluster Table (Dependent Filter)

This is where Power BI diverges most from Tableau.

We must explicitly create a table that contains:

  • which cluster a value belongs to
  • the actual selectable values

Go to Modeling → New table:

What this DAX is doing (in simple terms)

  • Combines multiple columns into one list
    UNION() stacks values from City, Region, Country, and Category into a single column called SubCluster.
  • Keeps track of where each value comes from
    The ClusterLabel column stores whether a value belongs to City, Region, Country, or Category.
  • Creates a parameter-like table
    This table behaves like a Tableau parameter value list, even though Power BI doesn’t have native parameters for dimensions.
  • Does not filter anything by itself
    The table is intentionally disconnected. Filtering only happens later via a measure using TREATAS().

Put SubCluster[SubCluster] in a slicer.


3) Make SubCluster slicer dependent on Cluster Selector

Modeling → New measure:

What this DAX is doing

  • Reads the selected Cluster
    It checks which Cluster the user picked in the slicer (e.g. City, Region, Country).
  • Checks each SubCluster row
    Every SubCluster value knows which Cluster it belongs to.
  • Compares the two
    If a SubCluster belongs to the selected Cluster, it is marked as valid.
  • Controls visibility, not data
    The measure returns 1 (show) or 0 (hide), which is then used as a visual-level filter.

Now:

  • Click the SubCluster slicer
  • In Filters on this visual, add Show SubCluster Options
  • Set it to is 1

✅ Now SubCluster slicer shows only values for the chosen Cluster.


4) Apply the selection to visuals (TREATAS measure)

We have already created the baseline measure in step 1

Now create the “Tableau-style parameter filter” version:

How this DAX works

1. Capture the user’s selections

Here we read what the user selected in the slicers:

  • _clusterLabel tells us which field the user wants to analyse
    (City, Region, Country, or Category)
  • _subcluster tells us which value inside that field they selected
    (e.g. London, North, UK, CRQ)

Think of this exactly like a Tableau parameter storing the user’s choice.

2. Decide which column to filter

This is a common DAX pattern that works like a series of IF / ELSE IF statements.

We check which Cluster is selected, and then apply the filter to the matching column in the fact table. So for the first part of the expression with "city"

This means:

“If the user selected City, treat the selected SubCluster value as a filter on the City column.”

3. Why TREATAS is the key

TREATAS is doing the heavy lifting here.

Because the SubCluster table is disconnected, Power BI would normally ignore it.

TREATAS tells Power BI:

“Pretend this value came from this column in the fact table.”

So:

  • SubCluster = London
  • Cluster = City
    → Power BI filters powerbi_demo_fact_table[City] = "London"

This is how we recreate Tableau-style parameter filtering without relationships.


Final Step

  • Replace Total Events in your barchart with Total Events (Cluster/SubCluster) and also replace City with Subcluster for all visuals.
  • Axis: SubCluster[SubCluster]
  • Values: Total Events (Cluster/SubCluster)
  • In Filters on the visual, add Show SubCluster Options
  • Set it to is 1

You should now see:

  • SubCluster options change when Cluster changes
  • Bar chart updates correctly
  • No relationships required

Key takeaway

In Power BI, parameters are rebuilt using disconnected tables + DAX measures.
Once this pattern is understood, it becomes reusable across any chart.

Next...

A very common requirement in Tableau dashboards is a Top N parameter. While Power BI does offer a built-in Top N filter, it doesn’t support slicer-driven interaction in the same way. In the next blog, we’ll build a dynamic Top N slicer that allows users to control the bar chart—bringing us closer to Tableau-style behaviour in Power BI.

Author:
Zainul Abedin Natha
Powered by The Information Lab
1st Floor, 25 Watling Street, London, EC4M 9BR
Subscribe
to our Newsletter
Get the lastest news about The Data School and application tips
Subscribe now
© 2026 The Information Lab