Huyen Nguyen / About Author
Tableau-ID TableauDateフィルターされた期間内の最新スコアを出す方法
Dateフィルターされた期間内に最新スコアを出したい時に、普段Max(Date)でフィルターを設定すれば簡単に出来ると思われるが、実際に簡単ではありません。実際に私の経験からどういう問題が起こったか及び、解決策を紹介したいと思います。
目的:TableauのSample – Superstoreデータを使って、Salesの折れ線グラフと最新期間のスコアのビューを作りたい
先ず、地域ごとのSalesの折れ線グラフを作成した。
そして、新しいシートで、Order Dateを「フィルター」に入れて、「全般」と「上位」の両方に下記のように設定しました。
それから、Regionごとの色付け棒グラフと最新のSalesの2つのシートを作成し、それぞれにSum(Sales)の降順で並び替えて、アウトプットに近いダッシュボードを作りました。
ところが、Order Dateのフィルターに最新期間を2020.12 ➝2020.09にずらして見ると、右側のランキングがなくなりました!?
この問題の原因はフィルターにある「上位」のフィルターと日付範囲のフィルターの関係です。Tableauに先に日付範囲をフィルターしてから、MAX(Order Date)をゲットするという順番を設定するために、日付範囲のOrder Dateをコンテキストを入れて、同時に「上位」設定したOrder Dateフィルターをコンテキストから除外しないといけません。
そして、もしカテゴリーごとにOrder Dateの範囲が異なる場合、CategoryとSub Categotyもコンテキストに追加する必要があります。
すると、問題が解決され、欲しいビューが出来上がりました!
コンテキストフィルターと普通のフィルターの関係で上手くいかない場合、もう1つの方法があります。LODのFIXEDを使うことです。下記のように計算フィールドを作成しました。
それから、先と同じようにRegionごとの色付け棒グラフと最新のSalesの2つのシートを作成しました。それぞれに、MAX(Sales)で降順に並び替え、日付範囲のOrder Dateをコンテキストを入れ、ダッシュボードを作ったら完成です!
LODを使うとワークブックが重くなりクエリ時間がかかるかもしれないので、持ってるワークブックによって、どちらかを活用することを考える方が良いと思います。