【Tableau】ダッシュボード内のシートを別のシートに表示切替する方法

# 1.はじめに
本記事では、ダッシュボードに表示しているシートを別のシートに表示切替をする方法を記載します。この方法は職場のチームメンバーから教えていただいたものです。その内容を自分で試してみたので、本記事にやり方を残します。

---
**追記：2023年12月16日**
本ページの内容を見直したところ、よりシンプルな実現方法があると気づいたため、改善版の作り方を新たに投稿しました。ぜひ、こちらをご参照ください。
[【Tableau】ダッシュボード内のシートを別のシートに表示切替する方法（改善版）](https://qiita.com/sho_szk_/items/ab0bc99768db1e86bf3b)

---

# 2.概要
今回説明用につくったダッシュボードは2つのシートが表示されており、下のシートの表示を切替可能とします。切替はダッシュボードの右側のパラメーター（画面では、単一の値のリスト）を選択することで行えます。

|売上シート と【 利益の線グラフ 】|売上シート と【 利益の棒グラフ 】|
|---|---|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/fb44fec4-502b-2054-831a-eccdacc0a5b2.png)|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/03f3ad27-c1b1-8857-0a98-21923b514cff.png)|

**実際のViz（Tableau Public）**
[パラメータを用いたシート切替_2021年版 | Tableau Public](https://public.tableau.com/app/profile/sho.suzaki/viz/_2021_17026926909180/sheet0)

# 3.つくりかた
今回のダッシュボードのデータソースは「サンプル - スーパーストア.xls」を用います。ダッシュボードの上のシートは売上、下のシートは利益を表示します。**シート数は全部で3つ**で、売上シートを1つ、利益のシートは線グラフと棒グラフの2つを用意します。**ダッシュボード内の利益の棒グラフと線グラフの表示を切り替えられる**ようにします。作成時のポイントは**表示切替するシートは別途データソースを用意する必要がある**という点です。

## ①データソースを設定する
まずはデータソース設定をします。今回の例では3シートともに「サンプル - スーパーストア.xls」の注文を用います。そのため、元のダッシュボード（今回だと上の売上シート）に使うデータソースに加えて、切り替えるシート用のデータソースをそれぞれ用意します。よって、**今回計3つのデータソース**を用意します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/c4901a30-0824-6d5c-0797-55006b5156bf.png)

## ②シートを用意する
以下の3シートを用意しました。**注意点としては、用意したデータソース3つをそれぞれ利用してシートを作成してください。**

**売上シート（データソース：注文 (サンプル - スーパーストア)）**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/a2660b51-0741-0a64-5be8-00fa2858940b.png)
**利益の線グラフ（データソース：注文 (サンプル - スーパーストア) (2)）**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/22d80277-fac0-ccb3-2d25-9ca56adcbca7.png)
**利益の棒グラフ（データソース：注文 (サンプル - スーパーストア) (3)）**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/d85fd9a8-de96-8a7e-8fbb-b1c75eb74c48.png)

## ③パラメーターを作成する
次に、利益のシートを切り替えるパラメーターを作ります。キャプチャのような具合に設定します。パラメーターの設定をする際に、処理スピード向上のためデータ型は”整数”とし、値のリストの「値」に整数を入力してください。データ型を文字列などにしても作成は可能ですが、一番処理スピードが早いのは整数となります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/ed00eb85-fefb-64c0-6a8a-125fe87c81ad.png" width=50%>

## ④計算フィールドを作成する
今回は2つの計算フィールドを作成します。1つ目は**2つ用意した利益のシート（正確にはデータソース）をそれぞれ識別するための計算フィールド**、2つ目は**その識別したシートの表示／非表示を実現するための計算フィールド**となります。

### ④-1 2つの利益のシートをそれぞれ識別するための計算フィールド
**利益の線グラフ**のシートを開きます。次に、データソースの選択が利益の線グラフ用に用意したデータソースとなっていることを確認します。キャプチャの例では、データソースが「注文 (サンプル - スーパーストア) (2)」が利益の線グラフ用のデータソースとなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/5b5aa75c-740d-1433-3d14-40087c32605c.png)

対象のデータソース（例：注文 (サンプル - スーパーストア) (2)）に計算フィールドを追加します。名前は説明上わかりやすい名前としていますので、ご自身がわかりやすい名前としてください。

**計算フィールド名：シート切替用の識別フィールド**
**計算フィールドの式：1**
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/8fbf9957-9bad-c6cf-450f-46960ceaf0db.png" width=50%>

利益の棒グラフも同様の計算フィールドを作成します。**ほぼ同じ内容ですが、異なる点は計算フィールドの式を 2 とする点です。** 手順は、先ほどと同じく利益の棒グラフのシートを開いて、利益の棒グラフ用のデータセットが選択されていることを確認してください。そして、計算フィールドを作成します。

**計算フィールド名：シート切替用の識別フィールド**
**計算フィールドの式：2 ←注意**

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/43e4db71-e7ba-702c-77da-1f3abd5d6542.png" width=50%>

### ④-2 識別したシートの表示／非表示を実現するための計算フィールドを作成する
④-1で計算フィールドを追加した2つのデータソースに対して、以下の計算フィールドをそれぞれ作成します。このとき、名称と式の内容は同じとなります。

**計算フィールド名：シート切替用の判定フィールド**

```SQL:計算フィールドの式
[シート切替] = [シート切替用の識別フィールド]
```
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/aad8068f-2c0c-b45e-9f5d-362b9d8124e4.png" width=50%>

### ④-3 フィルターを設定して切替機能を実現する
この作業は利益2シート（線グラフ、棒グラフ）の両方で実施します。利益の線グラフのシートを開き、パラメーターの**シート切替**を右クリックして「パラメータの表示」をします。表示の仕方は好みですが、今回は「単一の値のリスト」とします。そして、**パラメーターの設定値が現在表示しているシートになっていることを確認してください（今回は「利益の線グラフ」）。** もしも、異なる場合はパラメーターをクリックして変更してください。そうすると以下の画面のようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/8aae73cd-dd1c-5253-611e-254329e6e987.png)

次に、フィルターに**シート切替用の判定フィールド**を設定してください。フィルター設定では、リストからの選択の**真**にクリックしてOKをクリックしてください。値が**偽**になっている場合は、パラメーターの設定が開いているシートになっていないため、フィルター設定画面を一度閉じてパラメーターの指定値を変更してください。**ここまでの作業を利益の棒グラフのシートでも行ってください。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/04cbbd5b-6e34-01a1-0833-4086aa518645.png)

この設定で、パラメーターで選択したシートは表示され、選択されていないシートは非表示となります。非表示になる理由は、設定したフィルターにより表示対象のデータが0件（0行）となったからです。表示対象データが0件のためグラフが表示されなくなります。

**パラメーターで「利益の線グラフ」を選択したときの利益のシートの状態**

|利益の線グラフ|利益の棒グラフ|
|---|---|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/823fbaad-1e7a-5c7c-c68e-13dbafa0f27f.png)|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/3a33d1d0-94e9-cb29-bbed-2b5154da41b8.png)|

## ⑤ダッシュボードを作成する
新しいダッシュボードのシートを追加します。売上のシート、パラメーターの「シート切替」、利益の線グラフを配置します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/e86c07a1-9e1b-88e6-8978-fca720091f5c.png)

次に、浮動を選択して、**「利益の棒グラフ」** をダッシュボードの上にドラッグアンドドロップして、シートの範囲を **「利益の線グラフ」** とピッタリ合わせます。そうすると、キャプチャの黄緑の枠のようにタイトルの **"利益の"** と **"グラフ"** という文字が揃います（線と棒は重なった状態となります）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/ca1d6058-f40f-a9f5-af8f-8d8d45763026.png)

これで完成ですが、タイトルの表示が重なったままなので今回はタイトルを非表示にします。利益の線グラフは重ねた時に下にあってクリックが難しいので、レイアウトから設定を変更します。レイアウトに表示されている各シートの名称を右クリックしてメニューのタイトルをクリックしてください。そうすると、ダッシュボード上のタイトルが非表示となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/41fddc66-0c58-36de-c344-38cfb53e04aa.png)

完成したダッシュボードが以下となります。**左の画像は、パラメーターで「利益の線グラフ」が選択**されていて、ダッシュボードの**下のシートが線グラフ**となっています（右側の棒グラフも同様です）。

|売上シート と【 利益の線グラフ 】|売上シート と【 利益の棒グラフ 】|
|---|---|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/fb44fec4-502b-2054-831a-eccdacc0a5b2.png)|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/989891/03f3ad27-c1b1-8857-0a98-21923b514cff.png)|

## ⑥ダッシュボードの拡張を考える
つくりかたの最後に、このダッシュボードの拡張を考えます。

**【利益の線グラフと同じタイミングで表示するシートを増やしたい場合】**
利益の線グラフ用のデータソースを使って新しいシートをつくれば、利益の線グラフと同じタイミングで表示／非表示できます。別のデータソースの場合は、同じやり方でシートとデータソースの設定（手順の④）をしてダッシュボードに配置してください。その際に、**「シート切替用の識別フィールド」**に設定する値を**利益の線グラフと同じ値**（整数の1）に揃えればOKです。

**【売上シートも線グラフと棒グラフの2種類設ける場合】**
**売上の線グラフと棒グラフで利用するデータソース**を**利益の線グラフと棒グラフのデータソース**に変更すれば設定完了です（**データソースの置換を利用する**）。その場合は、データソースは2種類だけで済みます。売上シートの様に、常にダッシュボードに表示する用のデータソースが不要となるからです。

**【切替の種類を増やす場合】**
例えば、2種類から3種類に増やすのであれば、パラメーターの **「シート切替」** の値のリストに 3 を追加し、そのパラメーターを選択した時に表示したいシートのデータソースの**シート切替用の識別フィールド**の値も 3 に設定してください。4つ以上に増やす場合も同様です。

# 4.最後に
ここまで読んで下さった方、ありがとうございます。少しでもどなたかのViz作成に役立てば幸いです。今回の事例は、**データソースの対象行が0行のときにグラフの表示が無くなること**と、**ダッシュボードの浮動**を利用したTipsとなります。Vizの参照者のいくつかの問いの答えを用意するために、今回のようなシート切替の方法も選択肢の1つとして持っていると良いかと思います。**もしも、本記事が参考になったという方がいらっしゃいましたら、いいねをクリックしていただけましたら、うれしいです。**