Monday, August 16, 2021

One Button Sheet Swap in Tableau

A viewer to my two button sheet swap video left a comment and asked me how to do single button sheet swap. Here is the solution.

It takes the following steps. Assume we have two worksheets built from two data sources. But they can be built from the same data source as well. 

Two filters with a parameter

First let's create a parameter [Sheet Select] with 1 and 2 as list of values.

Then for each sheet we set up a specific filter for it. For Sheet1 we have

[Sheet Select] = 1

For Sheet2 we have

[Sheet Select] = 2

Then place the filter in the filter shelf of the respective sheet and select the option True. By controlling the value of the parameter [Sheet Select], we can decide which sheet to show.

Creating a button sheet

Actually we duplicated the same sheet 2 more times and named the sheets for three different action types: Hover, Select, Menu. You can remove any of the sheets that you don't need.

This button sheet has a made-up data source with a single row of value 1 in a single column "Sheet". You can create this in an Excel or CSV file and import it into Tableau.

Then we need to create three new fields: True, False and Circular Value. And put them all the three in the Detail card. The Sheet field is a placeholder which allows an editable Label. We will put the button name in the label.

True and False fields have content exactly as their names.

The field Circular Value is created which will change to a value other than the current parameter [Sheet Select]. When the parameter is 1, the Circular Value is 2. Vice versa.

The components of the dashboard

The dashboard for sheet swap is composed of 3 button sheets and 2 chart sheets. You can always remove the buttons that you don't need.

The two chart sheets must be placed in a vertical container. In anytime, only one sheet is visible depending on the parameter value of [Sheet Select]

Caveat: Make sure that you hide the title of each sheet. Use area annotation for the title instead!! Otherwise, you can't hide the sheet.

Set up a Parameter Action

The purpose is to let the dashboard action assign a new value to the target parameter [Sheet Select]. The reference value is from that of the field Circular Value.

Here is the Parameter action set up of the Select button.

For the other buttons Hover and Menu, the set up is similar. Just select the corresponding Run Action On option. And select the corresponding Source Sheet.

De-select the Select button

For the Select button, the regular select action actually will leave the button stay selected after clicking on it. We need a Filter dashboard action to de-select the button. This technique is invented by Simon Runc and Yuri Fal. Here is the setup.

Voila, we are done with it. The resulting demo dashboard can be found here

Multi-sheet swapping via one button

The same technique can be applied to multiple sheet swapping via one button. The parameter [Sheet Select] has to have a list of 1 to N numbers. For the N sheets ready to swap, each needs to have a filter like [Sheet Select] =K where K=1,..., N.

For the Circular Value, the formula is as follows:

[Sheet Select]%N+1

By clicking the Select button, we can flip through all the N sheets in sequence. Same for running the other two button actions: Hover and Menu.

2 comments:

  1. "Then for each sheet we set up a specific filter for it. For Sheet1 we have

    [Sheet Select] = 1

    For Sheet2 we have

    [Sheet Select] = 2"

    How can I setup these filters?

    ReplyDelete
    Replies
    1. Create a calculated field named "Sheet1 filter" with [Sheet Select] = 1. Then place "Sheet1 filter" in the filter shelf.

      Delete