BIツールで初学者が躓くポイントと最初におすすめの学習するポイントを考える

この記事ではTableau 2019.3を使っています。
再現するためにはTableau Desktopが必要です。

こんにちは。 [ウィル](https://twitter.com/willanalysts) です。

**BIツール研究所**のアドベントカレンダーに参加してみました！

初学者が躓くポイントについて考えてみました。

Qiitaを読まれてる方からするとそんなことで躓くの？と驚かれる方もいらっしゃると思いますが、BIツールの界隈だとあるあるなのでレベル感なんかも感じで楽しく読んで頂ければと思います。



### 初学者が躓く：応用できない問題

BIツールを初めて利用する時には通常のエンジニアツールと同じように**チュートリアル**が用意されています。ただ初学者でチュートリアルを実施することはあまり多くないように感じます・・

最初にメーカーやベンダーが実施する[ハンズオンセミナー]
(https://www.google.com/search?q=BI%E3%83%84%E3%83%BC%E3%83%AB%E3%83%8F%E3%83%B3%E3%82%BA%E3%82%AA%E3%83%B3&oq=BI%E3%83%84%E3%83%BC%E3%83%AB%E3%83%8F%E3%83%B3%E3%82%BA%E3%82%AA%E3%83%B3&aqs=chrome..69i57j35i39l2j69i61l3.2907j0j7&sourceid=chrome&ie=UTF-8)に参加する方が多い印象です。※こんな感じで大量に無料セミナーが検索されます。

こちらのセミナーは整形化されたデータで見栄えの良いグラフを短時間で作成できます。
裏をかえすと**トラブルシュートをせず**にセミナーが終了してしまいます。

そのためデータの加工や計算式が算出ができず躓くことが多いです。

### わたしなりの分類

4つにわけて考えてみます。

**1.日付の分類**
**2.プロダクトやサービスの分類**
**3.人の分類**
**4.数量や売上、セッションの集計**

**日付の加工**
→開始日や終了日、月ごとの数値データのあんぶん処理、平日と休日祝日をわけるなどを意味します。

**プロダクトやサービスの分類**
→自社のプロダクトやサービスの大分類や売れすぎ商品、限定商品などの分類を意味します。

**人の分類**
→組織や居住地、初回購入リピート購入顧客などを意味します。

**数量や売上、セッションなどの数値の集計**
→前年対比、移動平均などの集計を意味します。

**上記の分類や集計ができず、躓く方が多いのではないでしょうか？**

### 初学者が最初に学習したほうがいい：日付の加工

BIを使う多くの方は帳票的な要件を請け負うことが多いと思います。（違ったらごめんなさい！）

**その時出す要件は数量や売上などのシンプル数値を様々な期間に加工するものが多い印象です。**

数値の集計は前年対比や移動平均など決まりきった算出式の場合が多く、「ぐぐれば」対応できることが多いです。わたしは最初に日付の分類や加工方法を習得するのをおすすめします。

####理由

**1.ほとんどの要件で期間の指定を受ける**
　相談を受けるときに日付で困ってる方が多い。
**2.日レベルないし時間レベルのデータが設計されていないことが少ない**
　今あるデータを加工するだけなので楽ちん
**3.ツールごとに独特の概念があるのでなんとなくが通じない**
**4.祝日マスタ、開始日終了日や期間など一度作成すると汎用的に使えるものが多い**

####難しいこと

**日付の結合**
同じ処理でも目的によって結合方法が異なります。
データ量が少なかったりするととりあえず要件を満たしていればいいやと考えがちですが、
日付のトランザクションは膨れ上がりやすいのでリリース後パフォーマンスが悪くなるケースが多いです。このチューニングが最初は難しいです。


###Tableauで使える日付の技をいくつか紹介

####カレンダーマスタを使った営業日計算

部下の社内申請の状況を確認するために申請から**3営業日後の日付を算出して可視化したい**です。ただ、社内独自の休日があります。※ここでは3営業日を当日を含めない平日とします。

このような場合はカレンダーマスタがあると営業日の計算が便利です。
一度DBで用意したりExcelやスプレッドシートで作成してしまえば全社で使い回すことができます。

某社だと「土曜日祝日振替特別休日」制度があります。
社内の稼働状況を見る時は以下のようなマスタをかませることが便利です。

※一番いいのはテーブルを作ってしまうことですが、、

**テーブル**

申請テーブル

| 申請日       |       申請者 |   申請内容    |
|:-----------------|------------------:|:------------------:|
| 2019/11/1             |              A |        ランチ        |
| 2019/11/19           |            B |       ソフトウェア       |

休日祝日マスタ

| 日付      |      祝日休日FLG |     詳細 |
|:-----------------|------------------:|:------------------:|
| 2019/11/17             |  1       |       日曜日     |
| 2019/11/18       |           0 |          |
| 2019/11/19             |            0|            |
| 2019/11/20       |                1 |            |
| 2019/11/21             |             0 |           |
| 2019/11/22          |           1 |      土曜日祝日振替特別休日    |
| 2019/11/23             |             1 |    土曜日        |
| 2019/11/24          |           1 |       日曜日     |


**結合**

<img width="396" alt="スクリーンショット 2019-11-30 22.09.29.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528348/c68bf8d5-a3cd-29c7-d84c-a3d82a756f2d.png">


申請日よりあとの日付　かつ　申請日の翌日から14日以内の日付を結合しました。
（GWが最大10日なので14日あれば3営業日のロジックを回せるため）

<img width="298" alt="スクリーンショット 2019-11-30 22.05.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528348/bb9eec81-a364-5220-45ca-576559be89f5.png">
申請日から14日後の式
DATEADD:日、月、年単位の加算減算ができます。外側のDATEはYYYY/MM/DD形式にするため


<img width="506" alt="スクリーンショット 2019-11-30 22.12.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528348/2425c44d-6ec7-625a-92f5-d59854677b37.png">

1行の申請内容に14日分の日付と祝日休日FLGがひも付きます。

**表示**

簡易的な方法でご紹介します。

<img width="703" alt="スクリーンショット 2019-11-30 22.28.04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528348/b9e683ea-ac67-c0d4-18a6-eda9ff02a93c.png">
上記は祝日休日FLG使えない＝０をフィルターして（平日のみを表示）して、日付のランキングをして営業日を表現しています。

<img width="263" alt="スクリーンショット 2019-11-30 22.30.47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528348/f7ea723a-40db-ca06-3a0b-11f26631a2ce.png">
日付に順番をつけています。

<img width="317" alt="スクリーンショット 2019-11-30 22.32.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528348/3ffdd0b2-ff69-d22a-37a6-c13ececf4caa.png">
表計算の編集より申請日ごとにランクをつけています。

<img width="624" alt="スクリーンショット 2019-11-30 22.33.59.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528348/f7c5a700-8758-d4b2-e17b-0eb23bffc63a.png">
最後にフィルターで日付順が3のものに絞り込みます。

**感想**

ノンコーディングの研修しか受けていないのに、
日付は工夫をしないといけないことが多く、初学者の方はつまづきます。

そのツールの日付の概念、日付関数、日付の結合あたりはマスタして、様々な日付の計算をできるようになると一気に世界が広がると思います！

以上です。