背景
ウォーターフォールチャートの色を項目ごとに設定する方法
総計も色を設定したい
TableauPublicでも公開中
https://public.tableau.com/views/_17280264974250/1?:language=ja-JP&publish=yes&:sid=&:redirect=auth&:display_count=n&:origin=viz_share_link
方法
まずはシンプルにガントチャートを作っていくので説明は省く
以下のような一般的なウォーターフォールチャートを作成する
色分けをするため計算式を作成し、マークカードの色にいれる
IF ATTR([サブカテゴリ]) = '本棚' THEN '本棚'
ELSEIF SUM([利益]) > 0 AND (ATTR([サブカテゴリ]) = '椅子' OR ATTR([サブカテゴリ]) = 'コピー機' OR ATTR([サブカテゴリ]) = 'アプライアンス' OR ATTR([サブカテゴリ]) = '付属品' OR ATTR([サブカテゴリ]) = '事務機器' OR ATTR([サブカテゴリ]) = '家具' OR ATTR([サブカテゴリ]) = '電話機' OR ATTR([サブカテゴリ]) = '文房具' OR ATTR([サブカテゴリ]) = '紙' OR ATTR([サブカテゴリ]) = '封筒' OR ATTR([サブカテゴリ]) = 'バインダー' OR ATTR([サブカテゴリ]) = '保管箱' OR ATTR([サブカテゴリ]) = 'クリップ' OR ATTR([サブカテゴリ]) = 'ラベル' OR ATTR([サブカテゴリ]) = '画材' OR ATTR([サブカテゴリ]) = 'テーブル') THEN '+'
ELSEIF SUM([利益]) <= 0 AND (ATTR([サブカテゴリ]) = '椅子' OR ATTR([サブカテゴリ]) = 'コピー機' OR ATTR([サブカテゴリ]) = 'アプライアンス' OR ATTR([サブカテゴリ]) = '付属品' OR ATTR([サブカテゴリ]) = '事務機器' OR ATTR([サブカテゴリ]) = '家具' OR ATTR([サブカテゴリ]) = '電話機' OR ATTR([サブカテゴリ]) = '文房具' OR ATTR([サブカテゴリ]) = '紙' OR ATTR([サブカテゴリ]) = '封筒' OR ATTR([サブカテゴリ]) = 'バインダー' OR ATTR([サブカテゴリ]) = '保管箱' OR ATTR([サブカテゴリ]) = 'クリップ' OR ATTR([サブカテゴリ]) = 'ラベル' OR ATTR([サブカテゴリ]) = '画材' OR ATTR([サブカテゴリ]) = 'テーブル') THEN 'ー'
ELSE '総計'
END
各サブカテゴリごとに条件式を用いて色を適用していく
サブカテゴリの本棚を別の色にしたかったので、まず本棚を指定する。
ATTRは非集計値を集計値に変更する上で必要
ELSEIFで+とーをそれぞれ指定する
OR以降はELSEで総計を指定するために必要であり、本棚以外の全てのサブカテゴリを指定している
イメージとしては「利益が0より大きい」かつ「カテゴリが本棚以外のどれか」
ATTR([サブカテゴリ])で総計を指定できなかったからこのように長い関数を入れている
どの条件にも引っかからなかった項目を総計と指定している