RevealApp - データ解析/可視化入門！② データノイズを除去！ 仕入情報(Excel)と祝日情報(他のExcel)を結合して祝日データを除外する！

# はじめに

## Revealとは
[Reveal  ダッシュボードをアプリケーションに組み込み](https://www.revealbi.io/jp)
> Reveal Embeddedは、アプリケーションに組み込み可能なデータ可視化SDKです。シンプルな価格体系、組み込みの容易さでアプリケーションの価値を最大限向上することができます。

## この記事は
下記記事の続きです。
[RevealApp - データ解析/可視化入門！①　「店長の感頼りな仕入れから脱却せよ！」　過去データから仕入れ額を算出](https://qiita.com/furugen/items/251c92162da3e76bbbdf)

前回までに、曜日別で食材仕入額、食材廃棄率を数値化・グラフ化しました。
これで店長が居なくても仕入れが分かりますね。めでたしめでたし..。

ではなく、本記事でさらに改善していきましょう！
さて、今回(本記事)の改善点は...?

~~(既にタイトルでネタバレしてますが)~~

## お題

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/1a4ea4fb-62d3-ad13-5b26-fe3c4a4a1e2e.png)
(前回の記事より引用)



曜日にここまで、バラつきがあるのであれば...
他に気にしないといけないのは、"祝日"の考慮でしょう。


でも、今回の解析データの項目を改めて確認しても"祝日”を判定することは出来ない...?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/46b94b60-e473-7d4c-279d-701f71a69387.png)



## Revealならデータソースの結合が出来る！
ご安心を！
Revealは１つのデータと他のデータを紐づけることができます。
(SQLでいうところの結合(join)のイメージ)

確かに、今あるデータは祝日の情報はありませんが、
他のデータソースと結合することで祝日の仕入れデータに対して、表示項目を増やしたり、フィルタリングしたりする事ができます。



## 今回結合するデータ(祝日カレンダー)


2017年～2019年の祝日カレンダーを、データソースとして用意しています。
https://github.com/furugen/Reveal-Samples/raw/master/SampleData/HolidayCalendar.xlsx

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/f02c4bd4-d7b2-bbef-49cc-b6c59f20fd28.png)


## 仕入情報と祝日カレンダーを紐づけ

## Step1. データソースを追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/5f1805ac-59dc-6468-51f3-bd471360d3b4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/5e017646-2cf1-83fa-2ef5-2053f5c5a859.png)

URLに下記を入力
https://github.com/furugen/Reveal-Samples/raw/master/SampleData/HolidayCalendar.xlsx
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/61d2bdc7-88f9-a89d-15c8-87df3ba24440.png)

認証は不要なので、アカウントなしを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/361ac2da-cab0-2078-3be4-2401f9f0050e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/bdfd02f0-151a-a4d1-8c17-80171733e20b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/f78ba67c-edbb-8906-5374-ee5a83df802a.png)

## Step2. データソース間の結合項目を設定

続いて、2つのデータソースを結合するために、結合項目を設定します。

仕入情報の仕入日　＝　祝日カレンダーの日付

を紐づけましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/ab2c56e6-b89b-5fd3-9b54-ea2c8f4e2385.png)

仕入情報に含めるフィールドとして祝日カレンダーの"祝日"を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/bd86176d-bcf4-05b3-4d2e-818cd783fbd9.png)

あとは、データの結合をクリックして完了。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/b0fc2013-df20-70cf-d690-13099cd9604c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/aa73a4bc-c497-04da-74c1-bf7b242214ac.png)

無事、祝日項目を追加できました！
ちなみに確認用にグリッドで表示するとこんな感じになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/c4f15bac-6aa9-0f97-4553-756f221710cb.png)

## Step3. ≠祝日をフィルタリングするために isempty でフィルタリング

それでは、祝日を除外した仕入情報を表示しましょう！
...もう１ステップ必要です。

フィルタリングするためには、祝日かどうか？の判定結果が必要になるため、別途、祝日判定フィールドを作成します。

さらに祝日判定フィールドは isempty 関数で祝日が設定されているか？いないか？を返却するように設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/1038f8ee-4ffe-0aff-3c8e-05894fd9ab33.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/6c70fd8b-7fc3-0a11-6a3e-1d6524953287.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/893e2178-9751-46f9-364f-8a98bbe65afa.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/e76bcf23-ada5-d97a-e077-3dc6f3cc801c.png)

OK!!

## Step4. データフィルタリング設定で複合グラフから祝日情報を除外！
さて、これまでのStep1～Step3を経て祝日情報を除外できる下準備が整いましたので、
前回作成した複合グラフと同じ条件のもと、フィルタリング条件(祝日除く)を追加してみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/9832be55-52a7-1d19-5b21-8b005da04203.png)

1=祝日ではない。ので"1"を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/0b43197f-57ee-8068-f155-d6a324729842.png)

## Step5. 出来たもの
まず、祝日除去版がこちら。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/3bfb0a00-5314-6d41-0e31-64c954ecdf6c.png)

祝日含んだものと並べて比べてみましょう。
左が前回作った、祝日含む
右が本記事で作った、祝日除外
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/8d175892-f9f4-319a-9a67-536d3e4ce909.png)

材料仕入額ベースで比較。やはり祝日除外したデータは全体的に下がりました。
特に月曜日が顕著に下がったのは、祝日が月曜日に集中している可能性がありますね。（※２）
実際に仕入を行う際は、祝日除外版をベースに、祝日の場合は別で考慮した方がより精度の高い仕入になるでしょう。

| 曜日       |      祝日含む |    祝日除外    | 差分 |
|:-----------------|------------------:|:------------------:|--------:|
| 土|              70 |        70| 0 | 
| 日|            59 |       58|-1 | 
| 月|              44|        39|-5 | 
| 火|                41|         40|-1 | 
| 水|             42|       42|-0 | 
| 木|           39|      38|-1 | 
| 金|           51 |     50|-1 | 

### ※２　おまけ
2017年～2019年の祝日数を曜日別に可視化してみたところ、
想定通り、祝日は月曜に集中していることが分かりました！

Revealでは様々な可視化グラフを選べ、項目をドラッグ＆ドロップするだけで、すぐにデータの可視化が出来るので非常に楽ですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/59b80ee8-2825-d41b-ad14-4e36d6a02bb7.png)
~~(ちなみに、振り替え休日を考慮してないので実際はもっと多いかも...)~~

# まとめ
次回の記事では、集客に非常に影響が多い。あのデータを結合を紐づけます。
より制度の高い仕入れ額を導き出していきましょう！

(予告)
RevealApp - データ解析入門！その③　Revealで仕入情報(Excel)と過去の天気情報を紐づけ、より高精度な仕入れ値を算出する！