Creating a Selection Panel with Parameter Actions

I previously wrote a blog post showing how you can create a selection panel using Set Actions. After some recent experiments with using a parameter as a data source (more on that here), and with some inspiration from Lindsey Poulter (see below), I decided to recreate a similar selection panel using parameter actions for this week’s #MakeoverMonday challenge.

Why Use a Parameter Action?

The set action approach is very effective and has the advantage of easily being able to select multiple adjoining values, however, it has the disadvantage that if you want to select multiple values sequentially, you have to remember to hold down the CTRL key otherwise you will lose all previously selected items. For example, here I don’t hold CTRL when selecting Connecticut so I lose my prior three selected states:

When using a parameter as a data source you have more control over the behaviour of each parameter action and how the value stored in the parameter updates as a result.

Selection Panel Requirements

For this #MakeoverMonday dashboard, I want to show a list of NBA teams and be able to select up to nine teams with the following requirements:

  • If the team being clicked on is already selected, then deselect it (remove it from the parameter)
  • If the team is not already selected and there are fewer than 9 teams already selected, then make the team selected (append the team to the parameter)
  • If there are already 9 teams selected then don’t add the team to the parameter and display a warning/instruction in the tooltip that the maximum number of teams has been selected

Value to pass to the parameter

The above requirements (except for the tooltip) are achieved with the below calculation, the result of which I pass back to my p.Selected Teams parameter when a team is selected in the view:

Below is the setup for the parameter action:

Dynamic Tooltip Instructions

The final requirement is to show a message in the tooltip if there are already nine teams selected (as I’ve designed the small multiple for my dashboard as a 3×3 grid). This is achieved by adding the following calculation to the tooltip shelf:

The Teams Selected calculation is below. This counts the number of team names currently in the parameter by replacing all characters except the tilde (~) delimiter with an empty string, which results in a string of tildes – one for each team name. The length of this string is then calculated:

Building the View

There are different ways you could construct this view. In this case, I used a series of bar charts all with a value of 1 on an axis of 0 to 1. With row and column borders on, the result is a grid with a separate mark (bar) for each team, which I can control the colour of. Below is the view:

Using Colour to Highlight Selected Teams

To highlight those teams selected, i.e. those that are in the parameter, I created a calculation to check if the parameter contains the team name and return TRUE if it does or FALSE if it doesn’t. This was then put on the Colour shelf:

Automatically Deselecting the Selected Mark

Whenever you click on a mark in the view, Tableau highlights that mark and puts a border around it, which usually makes sense. That is unless, for UI purposes, you don’t want that to happen.

In this case, I want to be able to select a team and the only UI change I want to see is the bar for that team change colour. I don’t want the colour of other teams to be dimmed and I don’t want a border to show around the selected team’s bar.

This is how the view looks by default when a team is selected:

There are different approaches to achieving the desired result and Jonathan Drummey recently wrote a blog post that gives a lot of background. He also started a thread on twitter, which resulted in a various suggestions, including this one from Yuri Fal, which works very well, so I used it here.

I recommend taking a look at Yuri’s workbook which he links to in his tweet above. In summary, the approach involves passing a filter value from one dimension to another dimension, with the action setup with the source as the dashboard sheet and the destination as the underlying view:

With the filter action in place, the UI provides a more natural experience. You can also see how the tooltip changes, when nine marks have been selected:

Below is an image of the final visualisation. Click the image to open the workbook in Tableau Public:

Thanks for reading!

@Marc_DS5

2 thoughts on “Creating a Selection Panel with Parameter Actions

Add yours

  1. Great post. Can’t wait to use this method.
    Another advantage of parameter actions over set actions is that parameters do not depend on a single data source. With the new action feature concatinate, it is easy to build multiselect global parameters.
    I like the idea of a paramter data source 👍👍👍👍

    Like

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 )

Google photo

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

Twitter picture

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

Facebook photo

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

Connecting to %s

WordPress.com.

Up ↑

%d bloggers like this: