パラメーターアクション

心が変われば、行動が変わる。
- ウィリアム・ジェームズ -

パラメーターアクションは、ダッシュボードアクションの機能の1つです。アクションで選択したグラフ内の値を、指定したパラメーターの値に代入することができます。

今回はこのパラメーターアクションの機能を使って、表示する月を切り替えるカレンダーチャートをつくってみました。


カレンダーチャート

カレンダーチャートは、その名の通り、カレンダーのような見た目で表現したグラフのことです。
列に[曜日]、行に[週数]を配置することで作成することができます。

図1


ちなみに上記だと、データのない日付は欠落して表示されてしまいます。
今回はカレンダーとしての見栄えをよくするため、下記の方法で欠損している日を表示しています。
図2


DAY_Label
IF ZN(MIN(1))=0
THEN PREVIOUS_VALUE(MAX(DATEPART('day', [オーダー日])))+1
ELSE MAX(DATEPART('day', [オーダー日]))
END

「ZN」は、NULLのときに0を返す関数です。データのない日付の場合はNULLになるため、ZN(MIN(1))の結果は0となり、データがある日付の場合はそのまま結果が1となります。

図3


これで日付の有無を条件分岐させ、データが欠損している場合は、1つ前のデータの日から1を足した数を表示する、という式になっています。PREVIOUS_VALUEは1つ前のデータを参照する関数です。

ただし、この方法は表示されている月の開始日~終了日の間を埋める方法になっています。そのため、1日日や31日が欠損している場合は表示できないので、注意が必要です。


パラメーターアクションで月を切り替える

この作成したカレンダーチャートの月を、直感的にわかりやすいボタンを作成して切り替えてみましょう。

完成イメージはこんな感じです↓
図4

「▶」をクリックすると翌月に切り替え、「◀」をクリックすると前月に切り替えるボタンです。


準備する計算式は以下です。


Month Para ※パラメーター
図5

Monnth Increment ※パラメーター
図6

Month Filter ※パラメーターと一致する月のみを表示するフィルター。すべてのシートに入れます。
DATETRUNC("month",[オーダー日])=DATETRUNC("month",[Month Para])

+Month
DATE(DATEADD("month",[Month Increment],[Month Para]))

-Month
DATE(DATEADD("month",-[Month Increment],[Month Para]))


また、ボタン用の下記のシートを用意します。

「▶」用のシート
図7

[+Month]をシート内に入れておき、表示されないようにします。


「◀」用のシートも同様です。
図8


そしてこれらを元に下記のパラメーターアクションを設定します。

図9

図10


「Month Incremment」パラメーターを、1に設定している状態でボタンを押すと1ヶ月単位でカレンダーの表示を切り替えることができます。今回は使用しませんでしたが、これを12に設定を変えると、12ヶ月単位=1年単位でカレンダーの表示を切り替えることもできます。
図11


まとめ

今回はパラメーターアクションを使ってカレンダーチャートの月表示を切り替えてみました。
パラメーターアクションをうまく使いこなせば、表現の選択肢を広げることができます。

ぜひ試してみてください!

Tableau Public