みんな大好きスーパーストアクイズ第12問の回答例

# みんな大好きスーパーストアクイズとは
Tableauをインストールしたらついてくるサンプルスーパーストアのデータを題材にクイズ形式でデータ分析をしてみようという企画です。Tableau社の[KTさん](https://twitter.com/DATA_Saber)が作成してくれています。

この[Tweet](https://twitter.com/DATA_Saber/status/1256862048748621836?s=20)に過去の問題がまとまっています。


TabjoのBlogでもまとめられていましたね。
[みんな大好きスーパーストアクイズ～まとめ１](https://note.com/tabjo/n/n9fe2b5cf67c1)
[みんな大好きスーパーストアクイズ～まとめ２](https://note.com/tabjo/n/nf034387179ce)

１問１答でシンプルで取り組みやすく、２分程度の解説動画も作成いただいており、動画の中で様々なTipsが紹介されるので、回答＆動画閲覧をセットで取り組むことがおすすめです。

# 今回の内容
第12問の回答について解釈が分かれる部分がありKTさんの回答と少し違うアプローチをしているのでそのご紹介です。

# 解釈の違いについて
第12問の問題文は以下のとおりです。
>売上TOP10製品を購入した顧客の人数が87名であることがわかりました。ではこれらの製品を購入した顧客とそれ以外の顧客の顧客区分「小規模事業所」の割合がより大きいのはどちらでしょうか？

第11問からの続きなので第11問の問題文も参考に載せておきます。
>売上TOP10製品を購入したことがある顧客は何名いますか？

解釈が分かれるのは「これらの製品を購入した顧客」と「それ以外の顧客」の定義です。KTさんの解説では「売上トップ87製品が購入されているレコード」と「それ以外のレコード」と解釈して説明されています。私の理解では「売上トップ87製品が購入したことがある顧客のレコード」と「それ以外のレコード」と解釈しました。図で表すとこんな感じです。

<img width="788" alt="Screen Shot 2020-05-03 at 23.12.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200471/0bfc0ea8-ee9d-b82f-312b-766463fa1d06.png">

<img width="779" alt="Screen Shot 2020-05-03 at 23.12.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200471/7d0a6ae0-0baa-3687-9e5e-d1d79d11d06b.png">

何が変わってくるかというと、「売上TOP10製品を購入した顧客の、売上TOP10製品以外の製品を買ったレコード」が、「これらの製品を購入した顧客」になるか「それ以外の顧客」になるかが変わってきます。売上TOP10製品を買ったことのある顧客の87名のうち86名はそれ以外の製品も購入しているので（皆さんも確認してみてください）、その86名はKTの解釈だと「それ以外の顧客」側にもカウントされています（以下の図参照）

<img width="727" alt="Screen Shot 2020-05-03 at 23.27.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200471/2fd01eb1-502d-6409-0455-9b93ebdfbe51.png">

# 具体的な解き方について
では私の解釈での解き方についてです。シンプルに手動でやる方法とテクニカルに数式で解く方法があります。シンプルな方法は簡単ですがデータが追加、変更されたときに再度顧客のセットを作り直す必要があります。テクニカルな方法は数式が複雑ですがデータの追加・変更にも強いのでダッシュボード化して定点観測する場合はテクニカルな方法を選択する方が良いでしょう。

## シンプルな方法
売上TOP10製品を購入したことのある顧客をVizに表示して、全てを選択してセットを作成します（図は一例です）。
<img width="1229" alt="Screen Shot 2020-05-03 at 23.32.40.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200471/c3e51a9c-1387-13a7-2951-521991b99030.png">
上記で作成したセットを使って顧客区分ごとの顧客数の割合を計算します。このやり方は[KTさんの解説](https://twitter.com/DATA_Saber/status/1256845484372590593?s=20)と同じです。
<img width="1228" alt="Screen Shot 2020-05-03 at 23.34.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200471/d4464fd0-a3b1-06cd-00fc-24b290606bba.png">

## テクニカルな方法
これは社内の勉強会で若手の一人である[Genki Kokubo](https://twitter.com/GKokubo)さんが考えてきてくれた回答例です。

以下の計算式で売上TOP10製品を購入した顧客かどうかのフラグを作成しています（可読性向上のため本人の数式から少し改変しています）。

```
{FIXED [顧客名]:

IF
 SUM( IIF([製品売上TOP10],1,0) ) >= 1

THEN "TOP10購入者"

ELSE "TOP10購入者以外"

END
}
```

ここはざっくり解説させていただくと、```IIF([製品売上TOP10],1,0)```で製品売上TOP10の購入レコードに1を付けています、これをLoD計算のFIXEDを使って顧客名ごとに合計を取って、その値が1以上であればTOP10製品の購入者と判断しています。前提として「製品売上TOP10」というセットは作成しています。

最も驚いたのは実は彼はTableauを始めて１ヶ月も立っていないということでした。そんな中で自力で調べて実現してきてくれたことに感動しました。まだTableauを触り始めて1ヶ月くらいですが面白いVizを作ってくれています。

# おわりに
コロナの影響もありオフラインでのユーザー会ができない中、このような形で誰でも参加できるかつためになる取り組みを始められていて凄いしありがたいと思っています。私の会社もほぼ全員が在宅勤務になったこともあり、コミュニケーションが希薄になるのを避けたい思いもあってこのスーパーストアクイズを社内のメンバと毎日1問解いてきて解説して議論することをやり始めました。毎日30分でも勉強したりコミュニケーションをとると、お互いの状況が少しは分かりますし、相談しやすい空気づくりはできたのかなーと思いました。こういうきっかけを作っていただいた[KTさん](https://twitter.com/DATA_Saber)には感謝です。そういう感謝の意味も込めて私もこの取り組みの一助になれればと思いこの記事を作成しました。