Tableau

【Tableauでレコードが無くてもすべての項目を表示させる】リレーションシップ機能

Tableauでレコードの無い項目が表示できない

ウ~ン

年月で絞った時に項目りんごを表示させたいのに歯抜けになってしまう…

Tableauはレコードの無い項目は表示できません。ここでは「りんご」は2021/11/1には1レコードも登録されていないので表示されない。それはそう。しかしなくても0として表示させたいときはある。

 

そんなときの考えたやり方としては2つ

①リレーションシップ機能を使う

②ダミーレコードを追加する

です。

 

やり方①②どちらも「ない組み合わせのレコードを疑似的に発生させて0として表示する」というのは同じです。

①②それぞれ注意点があるので目的にあったほうを使うといいと思います。

①リレーションシップ機能を使う

リレーションシップとは結合ではないフワッとした感じでデータとデータをつないでくれる機能です。2つのデータを組み合わせるので、結合みたいに両方のデータの列がビューで使用可能になりますが、結合ではないのでレコードが増えることがありません。

なんかこう…何?そういうものです。

もっと知りたい人は公式ドキュメントなどを読もう!

公式ドキュメントhttps://help.tableau.com/current/pro/desktop/ja-jp/datasource_relationships_learnmorepage.htm

 

このリレーションシップを使って今ある個数のデータと、ない品目を出すためのデータをくっつけます。

2021/11/1の時に存在しない品目「りんご」を表示させたいので、このような日付と品目の全組み合わせを計算したデータを作ります。

3カ月×4品目=12行できます。

もし品目の他にも同じように表示したい項目があるなら、日付×品目×…として全組み合わせ出してください。

Prepでの作り方例

結合キー列を作る→日付×品目の組み合わせを作る でできます。

結合キー作成↓

結合キーと日付のみ、結合キーと品目のみにする↓

掛け合わせて日付×品目を作る↓

 

作った全組み合わせデータと売上データを日付をキーとしてリレーションシップ機能でくっつけます。↓

 

シートを作る

全組み合わせデータの方の品目を使うと2021年11月にもりんごが出るようになりました。

りんごでた

ただ、個数が正しくないので、次の計算フィールドを作ります。

IIF([品目]=[品目 (日付x品目)],[個数],0)

これは、リレーションでくっつけた品目に売上データの個数が引っ張られて出てくるため、売上データがあるもののみ個数を数える、なければ0と数えてもらうためです。

ここがリレーションシップの注意点です。

 

個数を計算するフィールドを使うと、2021年11月でもりんごが0として出るようになりました。

商品IDも入れようとしたら組み合わせデータに入れ忘れたので表示できませんでした。

やってて計算フィールド毎回作るのちょっとめんどくさいかも!と思いました

品目のような0を表示させたい列がたくさんある場合、次に紹介するダミーレコードの追加の方がいいかもしれません。

C.T
8時間睡眠