
はじめまして。tableau初心者です。
パラーメターを動的に使う方法について教えていただきたいです。
(1)パラメーターで選択した年月について、その年月と前年の年月を表示したい
画像を御覧いただきたいのですが、パラメーターで特定の年月を指定してもすべての年月が表示されたままです。「パラメーターで選択した年月」と「その前年同月」のみ表示するようしたいです。
(2)もう一列作成したうえで前年同月比を計算したい
計算フィールドで「パラメーターで選択した年月」と「その前年同月」の数値(ここは残業時間としています)は表示できるようになりました。
(1)で表示を2つに絞ったうえで、もう一列追加し、前年同月比を表示したいです。
(3)計算フィールドがきれいでない気がする
前年同月は下記の計算フィールドで計算しています。
<残業時間(前年同月)
IF [当月]-365= [年月(日付)] THEN [残業時間計]
END
-365としているのですが、閏年などでズレそうな気がするので、年月の扱いとして「-12」で調整できた方が確実ではないかと思っています。
上記の改善策についてご教示いただけないでしょうか。
よろしくお願いいたします。
こんにちは。
サンプルスーパーストアで作ったファイルを添付します。
表示をコントロールするための計算式「表示コントロールフラグ」を以下のように作ります。
日付データは時刻まで含む場合もあり365日を引くだけでは狙った通りにいかないこともあるので、今回必要な年と月だけ抜き出して計算した方が良いかと思います。
①上側でパラメーターで指定した日付の年と月が一致する
②下側でパラメーターで指定した日付のマイナス1年と月が一致する
としているので、パラメーターが2023年10月を指定している場合、
①2023年10月=真
②2022年10月=真
となります。
(DATEPART('year',[Order Date])=DATEPART('year',[年月のパラメーター])
AND
DATEPART('month',[Order Date])=DATEPART('month',[年月のパラメーター]))
OR
(DATEPART('year',[Order Date])=DATEPART('year',[年月のパラメーター])-1
AND
DATEPART('month',[Order Date])=DATEPART('month',[年月のパラメーター]))
「表示コントロールフラグ」を列の年、月のピルの右隣に追加します。
表示された「偽」の文字を右クリックして非表示にします。
パラメーターを動かすことで真偽判定は再計算されるので、パラメーターで指定した年月と前年同月だけが動的に表示されるようになります。
行にあるメジャーのピルを複製して右クリック>簡易表計算>前年比成長率
列にある「表示コントロールフラグ」のピルをフィルターにドラッグ&ドロップしてフィルターの条件を「真」のみにします。
あとはお好みのビジュアライズになるように整えてください。
※最終的に「表示コントロールフラグ」はフィルターで使うので、「偽」を非表示にする前工程の作業は要らない訳ですが、初心者の方という事でしたのでフィルター以外にも非表示にすることでこのような表現ができることを知っておくと便利かと思い敢えて残しました。
見た目上同じように見えますが、データがフィルターされている訳ではなく表示がされていないだけなので、前年同月とかの計算で使うLOOKUP関数の邪魔をしないなどの利点があります。