![見出し画像](https://assets.st-note.com/production/uploads/images/94691020/rectangle_large_type_2_7db297d85a8fada7d87dbbe1d3078943.png?width=1200)
Tableau 目標(計画)達成率を円グラフで表示する
へりおん です。色々な数字の良し悪しを判断するためには、目標に対する進捗や結果を見ることも大切です。そしてダッシュボード内に多くのグラフがある中でも達成率はかなり上位に位置する指標のため、スペースは取りますが円グラフで表示してみたいと思います。
■完成図
円グラフは通常内訳を表示するときに利用しますが、今回は目標(計画)達成状況を表現するために使います。そのため、目標(計画)未達の場合は未達の割合を表示すればよいのですが、達成した場合はどう表示するのかを考える必要があります。今回は目標(計画)達成した場合は超えた割合も表現したいと思います。
![](https://assets.st-note.com/img/1672633126950-wgXAGN0i69.png?width=1200)
■計画データを用意しデータブレンドを設定する
まず計画データを用意します。今回は「サンプル - スーパーストア」のデータを利用する都合で、2015年の実績を2016年の計画として利用しました。
なお、計画は年間の地域とカテゴリで集計したものを用意しています。
![](https://assets.st-note.com/img/1672636433817-Q6Av9kDIw8.png?width=1200)
次に計画データをTableauに読み込みます。今回は計画は年間、実績は明細のためデータの粒度が異なりますので、データブレンドを利用したいと思います。計画データを「新しいデータソース」から追加します。
![](https://assets.st-note.com/img/1672636892766-GxpdpCQWBT.png?width=1200)
計画データが読み込めたらさっそくデータをチェックします。今回は2016年の計画比を見るため以下のように計画と実績(注文)を出してみます。プライマリデータソースを「注文」、セカンダリデータソースは「計画」として「オーダー日」「カテゴリ」「地域」をリンクさせましたが、いくつか計画が表示されません。どうやらブレンドのリレーションシップがうまくいっていないようです。
![](https://assets.st-note.com/img/1672666098126-pFPXfzAc1e.png?width=1200)
ワークブックの「データ(D)」からブレンドリレーションシップの編集(R)…を開きます。
![](https://assets.st-note.com/img/1672667440689-fTrDCaHgW0.png)
するとデフォルトでいくつかのフィールドが自動でリンク(結合)されています。これはデータソースのフィールド名と型が同じ場合に自動でリンクが設定されるために発生しています。今回は計画と実績(注文)の「オーダー日」の粒度が異なる(計画は年、注文は日)ため、以下のように3つ(カテゴリ・地域・年(オーダー日))のみリンクするように編集します。
![](https://assets.st-note.com/img/1672667758562-kU10XCMmYx.png?width=1200)
すると、今度は正しく表示されました。このブレンドリレーションシップの設定で円グラフを作成していきます。
![](https://assets.st-note.com/img/1672667849855-GTUGAKSzVY.png?width=1200)
■円グラフ用の計算フィールドを作る
円グラフの角度(面積)は以下のように考えます。
![](https://assets.st-note.com/img/1672669229668-UVPZ6QsPD1.png?width=1200)
そして円グラフの1周は計画であることを意識すれば、計算フィールドは難しくありません。
![](https://assets.st-note.com/img/1693405544451-GRkWLcpzGi.png?width=1200)
①:まずは1つ目の計画より足りない金額です。計画未達の場合のみに利用しますので、計画 > 実績 の場合は計画より足りない金額を求めます。
計画 < 実績 の場合は 0 とします。
![](https://assets.st-note.com/img/1672674585249-7tFDzhKsnc.png?width=1200)
③:続いて2つ目は計画を超えた場合の計算フィールドです。計画を達成した場合に必要な金額を算出しますので、計画 > 実績 の場合は 0 とします。計画 <= 実績 であれば本来は 実績 - 計画 で超えた差分を出せば良いのですがここに落とし穴があります。円の1周は計画金額ですが、実績が200%以上達成となった場合に単に 実績 - 計画 を出しただけでは、差額が計画を超えてしまいます。そのため % で余りの金額を利用します。
![](https://assets.st-note.com/img/1672678575366-ZOKtykCdx4.png?width=1200)
②:そして3つ目のベース部分です。実績 > 計画 であれば、計画から超過した金額を差し引きます。実績 <= 計画 であれば、計画 から足りない金額を差し引きます。これで計算フィールドは完成です。
![](https://assets.st-note.com/img/1672674597226-TDlf83O4f0.png?width=1200)
■円グラフを作る
円グラフを作成していきます。マークを「円グラフ」に変更し、先ほど作成した3つの計算フィールドをグラフに重ねていきます
![](https://assets.st-note.com/img/1672671915403-C74NxFxDkj.png)
そして「メジャーバリュー」を角度に変え、「メジャーネーム」を色に置きます。今回は計画が2016年しかないので、フィルターで設定しておきます。なお、「メジャーバリュー」は必ず「計画比プラス」「ベース」「計画比マイナス」の順にしておきます。
![](https://assets.st-note.com/img/1672672153634-OqLQnZHlzn.png?width=1200)
次にメジャーネームの色を整えます。計画より超過した分は「薄い青」、ベースは「青」、計画比マイナスは「赤」にします。
これで円グラフは完成です。
![](https://assets.st-note.com/img/1672672473224-e9f4f7r7Va.png?width=1200)
■ドーナツグラフにして計画比の率と額を載せる
行(または列)をダブルクリックし 0 を2つ入れると円グラフが2つになります。そして二十軸にし、軸の同期を設定しておきます。
![](https://assets.st-note.com/img/1672672846002-GotZN6FGT6.png?width=1200)
円グラフが重なっているため、前面の円グラフの「メジャーバリュー」と「メジャーネーム」を削除し、サイズを少し小さくしてドーナツグラフにします。
![](https://assets.st-note.com/img/1672672968092-15r3XWOtmf.png?width=1200)
続いてドーナツの中心に計画達成率と計画差異額、計画達成時に色が変わるようにしておき、フォントなど体裁を整えて完成です。
![](https://assets.st-note.com/img/1672673679247-jVKsRa5W4F.png?width=1200)
ちなみに「カテゴリ」と「地域」まで計画で持っているため、ディメンションに「カテゴリ」と「地域」を入れると円グラフも分割され表示されます。
![](https://assets.st-note.com/img/1672674634670-q0ZtsQ6ol5.png?width=1200)
■最後に
いかがだったでしょうか?冒頭にも書きましたが円グラフは基本的には内訳(しかも切り口が少ない)で利用するのが一般的で、本来計画比はブレッドグラフの方が向いているとは思いますが、円グラフでもそれなりに表現することができました。
なお、今回利用した計画データはグラフを作りやすいようにきれいなデータを用意しましたが、計画自体で粒度が異なる(例えば北海道地方はカテゴリ毎にデータがあるが、関東地方はカテゴリ毎に計画が無いなど)場合は、ブレンドよりも計画をユニオンで実績に追加した方が扱いやすいと思います。
皆さんのご参考になれば幸いです。