Tableau DATA Saberチャレンジ日記⑨

語彙力ゼロのダメリーマンによるDATA Saberチャレンジ日記の第九回は
八つ目の試練「8.HandsOn - Advanced I」の振り返り(備忘録)です。


Q1.売上推移製品別売上カテゴリ別累積売上を⾒たいのですが、それぞれのチャートをなるべく広いスペースを使って表⽰したいです。1画⾯内で切り替えながら表⽰できませんか︖

シート切替のパラメータを整数型の1~3の値で、それぞれ対応したシート名のリストを作成する。
計算フィールドを作成し、作成したパラメータをD&Dしてフィルター用の
メジャーを作成し、不連続に変更してからフィルターシェルフにD&Dする。
各シートでパラメータを表示させておき、対応したシート名を選択し、
フィルターの編集画面で対応した番号にチェックを入れる。
ダッシュボードで垂直コンテナを配置し、各シートを縦に並べる。
各シートのタイトルを非表示にし、ダッシュボードのタイトルを表示にチェックをいれる。タイトルの編集画面の挿入でパラメータを入力する。

【ポイント】
パラメータとフィルターの組み合わせでシートの表示非表示を制御できる。
ダッシュボードのコンテナはグラフ最大表示されるように調整してくれる。


Q2.データ内の最も新しい⽇付を基準⽇としたとき、最終購⼊⽇から基準⽇までの⽇数が60⽇未満の顧客は何名いるでしょうか︖

FIXED関数を使って顧客ごとの最終購入日とデータ内の最も新しい日付を
それぞれ作成し、DATEDIFF関数でその二つの計算フィールドを使って最終
購入日からの経過日数を作成。

 顧客ごとの最終購入日   { FIXED [顧客 Id]:MAX([オーダー日])}
 データ内の最も新しい日付 { FIXED :MAX([オーダー日])}

最終購入日からの経過日数のビンをサイズ60で作成する。

【ポイント】
FIXED関数はビューの中の他のいずれのディメンションにも関係なく、指定されたディメンションを使用して値を計算する。


Q3.顧客の購⼊回数別で、最も顧客数が多い購⼊回数はどれですか︖購⼊回数はオーダーIdの個別カウントで算出することができます。
【オプション問題】
1回のオーダーにおける⾦額の平均が ⾼いのは何回購⼊している顧客ですか︖

FIXED関数で顧客の購入回数を作成し、サイズ1のビンを作成する。

 顧客ごとの購入回数 { FIXED [顧客 Id]:COUNTD([オーダー Id])}

オプション問題はINCLUDE関数でオーダーIDごとの合計売上を作成し、集計方法を平均に変更する。

 オーダーIDごとの合計売上 { INCLUDE[オーダー Id] :sum([売上])}

【ポイント】
INCLUDE関数はビューに含まれるディメンションに加えて指定されたディメンションを使用して値を計算する。
(ビューにないディメンションを含める場合に役に立つ)


Q4.顧客ごとの合計売上を⾒たとき、どの⾦額レンジ(10万円単位)の顧客が多いでしょうか︖

FIXED関数で顧客ごとの合計売上を作成し、サイズ10万のビンを作成する。
顧客IDの個別カウントでヒストグラムを作成する。

 顧客ごとの売上 { FIXED [顧客 Id]:SUM([売上])}

【ポイント】
 金額レンジは0~99,999、100,000~199,999・・・となる


Q5.各顧客を初回購⼊年毎にまとめて、オーダー年毎の売上を割合で表現してください。2016年の売上の何%が2013年からの継続顧客で占められているでしょうか︖また、その結果を⾒て、スーパーストアに潜む課題について⾔及してください。なお、割合は1年分を100%として計算してください。

オーダー日(年)の売上高の積み上げ棒グラフを作成する。
FIXED関数で顧客別の初回購入日を作成し、色にD&Dする。
売上を簡易表計算のセルの合計に対する割合に変更する。

顧客別の初回購入日 { FIXED [顧客 Id]:MIN([オーダー日])}


Q6.初めて購⼊した顧客が、2回⽬に購⼊してくれるまでに何四半期空いていることが多いですか︖顧客ごとの初回購⼊四半期ごとに⾒せてください。
【オプション問題】
同じ分類で顧客1名あたりの売上が⼤きいのはどのグループでしょうか。結果を元に、最低でも2回⽬の購⼊をどのくらいまでの期間中に⾏ってもらうべきか教えてください

顧客ごとの二回目以降の購入日を作成する。
 IIF([オーダー日]>[顧客ごとの初回購入日],[オーダー日],NULL)

FIXED関数で顧客ごとの二回目の購入日を作成する。
 { FIXED [顧客 Id]:MIN([顧客ごとの二回目以降の購入日])}

DATEDIFF関数で初回購入日と二回目の購入日の期間を計算する。
初回購入日(不連続)を行に、二回目に購入するまでの期間(不連続)を列に置いて、顧客IDの個別カウントを値にしてハイライト表を作成し、最大値のみラベルを表示する。列のNULLは初回購入のみという名称に変更する。

オプション問題は売上高を表にD&Dしてメジャーバリューにし、メジャーネームを行の先頭にもってくる。マークのメジャーバリューを右クリックして別の凡例を使用にチェックを入れ、別の色を設定する。

【ポイント】
二回目の購入日=二回目以降の購入日の最小値


Q7.購⼊⽉(年は除く)と曜⽇の組み合わせで、1⽇あたりの売上平均が⾼い組み合わせを教えてください。
【オプション問題】
LOD表現を使わないで出す⽅法も考えてみましょう。

オーダー日(月)とオーダー日(曜日)を行列に置いて、INCLUDE関数で
オーダ日(日)を追加して売上高の平均を算出する。

 { INCLUDE [オーダー日]:sum([売上])}

オプション問題は売上高をオーダー日の個別カウントで割って算出する。

 sum([売上])/COUNTD([オーダー日])


Q8.年四半期ごとに、「カテゴリ」で「売上」の差を表⽰しています。この差の⼤きさにより年四半期をソートしたいです。
ソートは選択した「カテゴリ」に応じて変わりますが、3つのカテゴリは同時に表⽰しておいてください。(選択していないカテゴリのものは選択したカテゴリの降順で並んでいればよいです)

ソート用のカテゴリをパラメータの文字列で作成する。
(値=表示名=家具、家電、事務用品)

ソート用の売上の計算式を作成する。

  • パターン①EXCLUDE関数
     { EXCLUDE [カテゴリ]:sum(if [カテゴリ]=[ソート用カテゴリ] then [売上] end) }

  • パターン②FIXED関数
     { FIXED DATETRUNC('quarter', [オーダー日]):sum(if [カテゴリ]=[ソート用カテゴリ] then [売上] end) }

ソート用の売上を簡易表計算の差に変更し、不連続に変更して行の先頭に
もっていってヘッダとして使用し、売上の昇順で並び替えする。
ソート用の売上を右クリックし、ヘッダーの表示のチェックを外して非表示にする。

【ポイント】
パラメータを文字列で作成すると計算式の条件として使用できる。

EXCLUDE関数はビューに含まれるディメンションから指定されたディメンションを除いて値を計算する。(INCLUDE関数の逆)


Q9.顧客別の購⼊間隔の平均(初回購⼊〜最終購⼊の⽉数÷購⼊回数)ごとの顧客数と売上を⾒てください。売上がもっとも⾼い購⼊間隔を⽬標の購⼊間隔としたとき、現在最も⼈数の多い購⼊間隔のメンバーに対し、何か⽉間隔を縮めるような施策を打てばよいですか︖

DATEDIFF関数で顧客別の初回購入日と最終購入日の月数を計算し、顧客別のの購入回数で割って顧客別の購入間隔の平均を算出し、ビンを作成。
顧客数と売上のヒストグラムを作成する。

 顧客別の初回購入日 { FIXED [顧客 Id]:Min([オーダー日])}
 顧客別の最終購入日 { FIXED [顧客 Id]:Max([オーダー日])}
 顧客別の購入回数  { FIXED [顧客 Id]:COUNTD([オーダー Id])}

【ポイント】
以下のようにFIXED関数でまとめて計算してもOK
{fixed 顧客ID :datedief('month',MIN[オーダー日],MAX[オーダー日])}


Q10.スーパーストアでは新規顧客獲得に苦戦しているという問題を発⾒しました。新規顧客獲得が⽐較的進んでいる地域※を⾒つけ出し、その施策を全国に展開したいと考えています。
年⽉ごとの新規獲得顧客の累計推移を⾒たとき、最終⽉に第1位で着地している地域はどこでしょうか︖また、その地域はいつから第1位でしょうか︖その頃に始めたマーケティングの内容を確認したいと思っています。
※地域のとりかた顧客の住所が誤っていたため「Customer_Master.csv」に以下リンクの「地⽅の情報付き都道府県リスト」を結合してください。

顧客マスタはテーブルを開いてD&Dで紐づけ可能。
地方の情報付き都道府県リストはWebページからリストをコピーしてデータソース画面で貼り付けするとデータをテーブルとして読み込んで結合可能。

そのままだと結合できないので、結合の編集画面で以下の計算式を入力。
(-1は最後から一つ目の文字)
 TRIM( SPLIT( [地方区分/都道府県], "/", -1 ) )

オーダー日(年月)の顧客数のグラフを作成し、顧客数を簡易表計算の累計カウントに変更する(オーダー日で計算)

新規か既存顧客かの判別のためのブール値の計算式を作成。
 { FIXED [顧客 Id]:min([オーダー日])}=[オーダー日]

行に入れると真偽表示になるので名前を新規と既存に変更し、フィルタで
新規のみを表示して、修正後の地方を色に入れる。


Q11.スーパーストアでは利益確保の観点から、サブカテゴリごとに平均割引率が基準値15%以上にならないように指導されています。しかしながらこの4年を通して平均割引率を算出したとき、いくつかのサブカテゴリが15%以上になってしまっているようです。割引率がオーバーした原因として、基準値以上割引をしているメーカーはいくつあるでしょうか︖たくさんのメーカーが基準値以上割引しているために起こっているのか、どこかひとつのメーカーが⼤きく割引しているために全体的に割引率が上がってしまっているのか⼀⽬で確認できるようにしてください。
なお、サブカテゴリごとの平均割引率で⾒たときには15%以上ではないけれども、平均割引率15%以上のメーカーが同等程度存在しているサブカテゴリがあれば、そのサブカテゴリと対処すべきメーカーを教えてください。
※メーカーの情報はExcelに⼊っていないので、「サンプル-スーパーストア-メーカー情報.tdsx」を使⽤してください。

サブカテゴリ別の平均割引率の棒グラフを作って15%の定数線を入れる。FIXED関数で割引率が15%以上のメーカーのリストを作成

 IIF({ fixed[サブカテゴリ],[メーカー]:AVG([割引率])}>=0.15,[メーカー],null)

列にINDEX関数を入力し、詳細に割引率15%以上のメーカーのリストの計算式をD&Dする。INDEXと割引率を二重軸にして軸を共有し、INDEXの形状を円にする。そのままだと割引率の棒グラフと重なり、数が大きすぎてグラフのメモリがおかしい状態なので、INDEX×ー0.005と計算式を変更してメモリを調整する。INDEXの計算方法を割引率15%以上のメーカーのリストの計算式を使用して計算に変更する。
割引率が15%未満のメーカーもnull値として表示されているので、割引率が15%以上のメーカーのリストをつくる計算式を色にもっていき、nullの色の凡例を選択して非表示にしてから、色から計算式を外す。
アドホック計算で平均割引率が15%以上の計算式を入力し、色にD&Dする。

【ポイント】
NULL値を非表示にしたい場合、一つ一つグラフ上で選択すると非効率なので色の凡例を選択して非表示にすると効率的。



この記事が気に入ったらサポートをしてみませんか?