Dynamic Zone Visibility

In version 2019.2, Tableau introduced show/hide containers. These enabled the dashboard consumer to show or hide a container – along with any objects within it such as charts and filters – by clicking a button.

With the recent release of 2022.3, this concept has been taken to the next level with Dynamic Zone Visibility, which I’m thinking of as “data-driven show/hide containers” or more accurately “data-driven object visibility” as it’s not just containers but any object (or ‘zone’) – a chart, a filter, a text object, a web object, a download button or a container that holds any combination of these. 

The fundamental difference here is that the visibility of the object is not manually triggered by the user (by pressing a button) but rather by the values contained in your data or by a parameter value. 

Of course you could also combine these two features. 

  • A button for the user to manually show a container
  • The contents of that container (i,e. the objects within it) determined by the value of a calculated field or parameter

For example, the user could manually click a button to show filters. The filters in the container could be determined by who is logged in – maybe Finance group members see an additional ‘Cost Centre’ filter.

Examples use cases for Dynamic Zone Visibility

The possibilities are really open ended with this feature but below are a few examples:

  1. Show zones or customise dashboards based on who is logged in. For example, only allow a specific person or members of the Finance Group to see certain charts or filters.


  1. Customise the dashboard based on how many Orders were placed last month, for example, if quotas weren’t met, show a chart or map where that was the case. If all quotas were met then don’t show the chart. 
  2. Show zones based on which was the top selling product. For example showing a specific chart types or combination of charts that best analyses the sales for that product or category of products
  3. Zoom into a chart to show more detail and options. See this example from Tableau Visionary, Sam Parsons.
  4. Show zones based on the day of the week. For example, on Mondays, show a chart with a summary of last week’s sales. On Fridays, show a container that holds a text object with a reminder message to fill out the weekly feedback form or survey along with a web object showing a Google form to submit information on sales made this week or survey (…or many other possibilities). 
  1. Enable the ability of dashboard users to trigger an external workflow based on boolean conditions, for example, users are members of certain Tableau groups or they have selected relevant marks in the view.
  2. Show a different combination of charts based on selections made in the view and/or the analysis being undertaken at the time.

The video below walks through some examples of customising dashboards based on user selections (#7 above). More detailed tutorial videos will be available soon. 

What calculations or parameters can be used

To make an object be dynamically visible, a boolean calculation or parameter must be a associated with the object. This is done on the dashboard by:

  1. Selecting the object on the dashboard
  2. Checking the Control visibility using value checkbox in the dashboard pane
  3. Selecting a calculation or parameter from the drop down menu

Only calculations or parameters meeting specific criteria can be used. According to Tableau’s help page, this is as follows:

To be used for Dynamic Zone Visibility, a field or parameter must be:

  • Boolean.
  • Single value.
  • Independent of the viz, meaning the field returns a constant value independent of the structure of the viz, such as a fixed level of detail (LOD) calculation.

Examples of Invalid Calculations

These calculations did not work for me in testing (in this first 2022.3 release):

  1. { COUNTD([Region]) } > 2   // A fixed calculation returning True if the total distinct regions is more than 2.
  2. { MAX([My Set]) } = TRUE   // Returns True if at least one value is in the set
  3. { COUNTD(IIF([Category Set],[Category],NULL)) } = 1   // Returns True if there is exactly one value in the Category Set

It’s curious why the above three calculations do not work as they seem to satisfy the criteria from Tableau, above. However you can get them to work by wrapping them inside another fixed LOD as shown below:

Examples of Valid Calculations

  1. { MAX( { COUNTD([Region]) } > 2 )}   // as #1 above but wrapped in another Fixed LOD
  2. { MAX( { MAX([My Set]) } = TRUE )}   // as #2 above but wrapped in another Fixed LOD
  3. { MAX( { COUNTD( IIF([Category Set], [Category], NULL)) } = 1 )}  // as #3 above but wrapped in another Fixed LOD
  4. CONTAINS([p.MyParam],”My Value”)    // Returns True if the parameter contains the specified value
  5. [p.MyParam] = “My Value”   // Returns True if the parameter equals the given value
  6. [p.My Param] = TRUE   // a calculation evaluating if a boolean parameter value is TRUE
  7. [p.My Param]      // The boolean parameter itself (this will appear in the Parameters section of the drop down menu)
  8. DATENAME(‘weekday’,TODAY()) = “Monday”    // Returns TRUE if today is a Monday
  9. ISMEMBEROF(“Finance”)   // Returns TRUE if the user viewing the dashboard is a member of the Finance group

Just to confirm, by “Valid Calculations” I mean they appear in the drop down list of available calculations under the “Control visibility using value” checkbox on the Dashboard pane.

A few things to watch out for

  1. As mentioned above you may need to wrap your calculation in (another) Fixed LOD
  2. Don’t ‘Hide all unused fields’ – or at least not the fields you’re using for dynamic zones as they then won’t appear in the drop down list of fields to use and may make existing dynamic zones where those fields are use invalid
  3. If you’re working with overlapping dynamic zone containers with multiple objects within them, you may have issues moving the objects around within (some of) those containers. Shifting the container you’re editing out to the left or right temporarily (so it’s not occupying the same screen space) should help.


I’m still exploring and learning more about this new features but will create some YouTube tutorials soon that step through how to create some of the above scenarios.

UPDATE: an in-depth tutorial video is now available here: https://youtu.be/aqunvBEpnJY

It’s great to see Tableau dedicating time and resources to developing these types of very practical features that will enable analysts to create improved and more customised user experiences for their dashboard consumers.


Latest YouTube video
This video tutorial steps through how to create a dot plot in Tableau.

Comments are closed.

Create a website or blog at WordPress.com

Up ↑