スーパーストアの社長になってみる(第1回)

スーパーストアの社長になってみる(第1回)

データの全体像をざっくり把握する方法、分析前にやっておくべきことについて解説しています。

スーパーストアの社長だ

スーパーストア
Tableau スーパーストア

 タブローを利用されている方々はよくご存じだろうと思います。タブローの第一画面の下の方にあるスーパーストアというサンプルです。このサンプルにはタブローでできるとことが詰め込まれていますから、サンプルを参考にしながら知識を得たり実際にデータをつかってテクニックを練習することができるすぐれものです。

 今回は、このスーパーストアの社長になってみます。社長がスーパーストア(我が社)のデータを分析します。
 サンプルとしてあるVIZを使いながら、また少し手を加えたり、あたらしいVIZを考えたりしてみます。既存のVIZがあるものですから、今回は小技の解説が多くなっています。

データを確認する
Tableauスーパーストア

 我が社のデータソースへ接続しました。まず、データソースがどのようなものなのかを確認します。

 とりあえずは、データソースのタブへ移動して、じろじろ見ます。とくにフィールド名を見ます。データの内容が場合によっては数十万行!じろじろ見るだけでは無理です。そこで、データ内容を一望できる方法をあみだしました。

 とにかくはじめに、ディメンションとメジャーを確認します。
 メジャーのなかに「行ID」があります。データソースを確認すると1~昇順でユニークな番号になっているようです。
 名称のとおりIDですからディメンションへ変更します。
 メジャーからディメンションへ変更する方法は、
・ドラッグして移動する
・右クリックして「ディメンションに変更する」を選択するかのどちらかです。

 タブローはデータへ接続するだけで各フィールドを自動的にディメンションかメジャーへ仕分けしてくれます。フィールド名が「ID」あれば通常は自動的にディメンションとみなす仕組みになっています。
 つまりタブローはフィールド名を読んで判断しているようです。今回のデータがメージャーになっているのは「ID」が全角になっているからなのか、何かの理由があるのだろうと思います。

 そのほかを確認すると、ディメンション、メジャーのなかに計算フィールドがすでに作成されています。
・計算フィールドの見分け方は「=#」「=abc」のように、アタマに「=」がついていることでわかります。

 また、ディメンション階層がつくられていたり、フォルダーでまとめてあったりすることも見てとれます。これらは有難く活用させていただきます。

データを確認してちょっと編集する

ディメンションの個別カウント数を確認
スーパーストア ディメンション

 ディメンションの内容を確認します。
・ディメンションの階層やフォルダーで折りたたまれている部分はすべて開きます。
・ディメンションの上から下まで(メジャーネームを除く)をシフトキーを押しながら全選択します。
・すべてのディメンションを「テキスト」へドロップします。

ディメンションをテキストへ

・カードへ移動したディメンションを上から下までシフトキーを押しながら全選択します。
・右クリックして「メジャー」→「カウント(個別)」を選択します。

 さきほどまではディメンションそのものを表示していましたが、表示が数値へかわります。

ディメンションのテキスト

・数値のどこかへマウスオンするとツールヒントが開いて、ここで内容を確認することができます。

・「行IDの個別カウント」からデータソースは10,000行あることがわかります。

・「オーダーIDの個別カント」は2,822です。
 あるひとつのオーダーIDを取りだしたときに、そのオーダーIDは単数以上の行IDで構成されてることがわかります。粒度でいえば、オーダーIDは粒度が粗い、行IDは粒度が細かいといえます。

・「オーダーIDの個別カント」のほうが「オーダー日の個別カウント」よりも多くなっています。
 つまり1日あたり複数のオーダーIDがある可能性があります。

・カテゴリーとサブカテゴリ―の関係は階層です。
 粒度の粗い・細かいがあり、LOD表現でもつかえそうです。(LOD表現(タブロー))

1対1の関係にならない理由

・「地域の個別カウント」と「地域マネージャーの個別カウント」は一致しています。
・ところが「製品IDの個別カウント」と「製品名の個別カウント」が一致しません。
・本来は1対1の関係になるはずです。
 個別カウントはNULLをカウントしません。ゼロはカウントします。ひょっとすると製品IDにNULLがあるのかもしれません。

 実際に、このようなことはよくあります。
・ほとんどの場合、NULLよりも製品マスタの書き換えでが原因です。
 製品の番号、たとえばバーコードはそのままで、製品名が変わるということがよくあります。

・製品マスタの製品番号をそのままに製品名を書き換えたとします。
・製品名を書き換えたあとに過去1年分のデータをシステムからダウンロードします。
・製品名は書き換えらえた名称ででてきます。

 ダウンロードデータの製品番号と製品名の関係は1対1です。しかし、分析するデータというのはおおくの場合、1か月ごととかにシステムからダウンロードしたものを繋ぎ合わせた(ユニオンした)ものです。

 つまり、製品マスタの製品名を書き換えるまえのデータに製品名を書き換えたあとのデータがプラスされます。
 そうなると、ひとつの製品IDにたいして複数の製品名がついている状態になるわけです。顧客マスタの書き換えも同様な事象がおこります。

 この事象はLOD表現とか値の変更とかで回避できることがありますが、今回は少々なのでそのまま進みます。

ディメンションの最小値を確認
ディメンションの値

・カードへ移動したディメンションを上から下までシフトキーを押しながら全選択します。
・右クリックして「メジャー」→「最小値」

 このような確認もできます。日付の範囲とかの確認に有用です。

 そのほかの気づきで、返品の値が「〇」になっていす。ここを確認してみましょう。

値を別名にする
Tableau 別名

・「〇」のフラグが付いている行とNULLの行があります。
 「〇」は、返品になった行とならなかった行を判別するフラグのようです。
・「〇」と「NULL」の表示ではわかりにくいので変更します。

Tableau 別名

・返品を右クリック→「別名」を選択します。
 「名前の変更」ではありません。「別名」はデータソースの値を書き換えることができる機能です。

・窓が開きます。
・右列の「値(別名)」を書き換えれば完成です。
・「NULL」は純売上高、「〇」は返品高へ書き換えました。

メジャー合計
メジャーをテキストへ

・すべてのメジャーをテキストへドロップします。
 数値が表示されます。
 我が社の売上高累計は2億円を突破しています。表示単位は円ではなく千円にしたほうが集計結果が読みやすくなります。このままだとグラフの軸目盛表示も円になって、いちいち軸の書式を変更する手間がかかるから表示単位をまえもって変更します。

表示単位を変更
Tableau 表示形式変更

・表示形式を「千(K)」へ変更します。「¥」は残しておきます。

 表ごとに「単位(円)]」のような注釈をつける必要がなくなります。¥も消してフィールドの名前を「売上高(千円)」にするとかもあります。このあたりは個人の好みですが。とにかく単位を百万円にしないと数値が読みにくい会社になりたいものです。

我が社について

会計年度を変更
Tableau 期初月変更

 我が社の会計年度は1月が期初、12月が期末であります。日本には4月が期初という企業がたくさんあります。

・データペインのデータを右クリック→「日付のプロパティ」を選択します。
・開いた窓の「会計年度の開始」から期初に該当する月を選択します。デフォルトで1月が設定されています。

売上高
Tableau 受注日を軸へ

 我が社の売上高は製品を出荷したときに発生します。
 通念的には相手方に製品やサービスを納入して受領日された日が売上高発生日なのだろうと思いますが、受領日データがなく、出荷日を売上発生日とします。

 画像のようにオーダー日と出荷日では売上高にズレが生じています。受注してから発送するまでのリードタイムが発生するためオーダー日を売上発生日にすることはできません。

 間違いを防止するために、
・「出荷日」を「売上日」へ変更しました。
・「売上」を「売上高」
・「利益」を「利益高」へ変更しています。

Tbaleau 日付フィルター

 売上日はもともと出荷日です。我が社は2019年度までの実績分析をしたいのに2020年度の売上高が入り込んでいます。

・2020年度の売上高を取り除くためにフィルターを使用します。
 ところがフィルターリングするとご覧のようにVIZがイマイチ。フィルターアクションを使用するときも2020がじゃまになります。

Tableau フィルターの適用範囲

 フィルターの適用先ワークシートを選択することができます。が、やはり2020年度のデータはないほうがよく、この先、分析対象になることはないので、思い切ってなくしてしまいましょう。

データソースフィルター
データソースフィルター確認

・フィルターを「関連するデータソースを使用するすべてのアイテム」にしたまま、データソースへ移動します。

・右上のフィルター「追加」をクリックすると窓が開きます。

 通常はここから窓の「追加」をクリックしてフィールドを選択して・・・手順があります。ところが開いた窓にはフィルターしたい内容がすでに書いてあります。「OK」をクリックして完了です。

 シートでフィルターを「関連するデータソースを使用するすべてのアイテム」にするというのは、データソースフィルターと同義であるということがわかります。

データソースフィルター

・右上を確認します。
 1個のフィルターが追加されています。

データソースフィルターの適用を確認

・シートへ戻りフィルターを外します。
 売上の年から2020年は消えました。

リレーションシップの編集

 売上高や利益高分析の時間軸は「売上日」(もとの出荷日)になります。
 「売上目標」がデータソース「売上目標」にあるのですが、こちらにはデータブレンドするための「売上日」がありません。

 「サンプル-ストア」データソースの「売上日」と「売上目標」データソースの「出荷日」とのリレーションシップを編集する必要があります。

 リレーションシップを編集する最も簡単な方法はディメンションの名前を変更します。「売上日」へ変更しましたが、今回は既存のVIZでこのリレーションシップを使用しているためか、うまくつながりません。

・データタブからリレーションシップの編集を選択します。
・開いた窓のなかのオーダー日と売上日のリレーションを削除します。
・追加ボタンをクリックすると更に窓が開きます。
・プライマリデータソース側の売上日をクリックします。
・セカンダリデータソースに売上日があらわれたらOKです。

 これで完成です。


>スーパーストアの社長になってみる(第2回)
>スーパーストアの社長になってみる(第3回)
>スーパーストアの社長になってみる(第4回)
>スーパーストアの社長になってみる(第5回)