RevealApp - 日付フィールドから集計用に曜日別のフィールドを新規作成する。

# はじめに

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

## この記事は

日付フィールドを元に、曜日別のフィールドを新規作成して集計に活用します！

例えば、飲食店の仕入れなどは、曜日別にデータを解析するのはよくある解析アプローチではないでしょうか。
でも、データソースには日付の項目はあるけど、曜日の項目は無い…。
そんな時、Revealでは新規フィールドを別途作ることができ、集計時の可視化フィールドに利用したり、フィルタリング項目としても活用することができます。


# 今回使用するデータ
データは下記。仕入日フィールドを元に、仕入日(曜日)フィールドを新規で作成していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/5d60e8df-fa55-02e4-e7d6-22a767b912a4.png)

# 作成手順
## 新規フィールド作成を選択
それでは、既存の日付データをもとに曜日データを作成する手順を紹介していきます！

## 新規フィールドの作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/39cad53c-6a86-e95c-b603-3a6c152d2a34.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/4778cb9b-78b2-5e06-41b5-beb2d92521d8.png)

## 集計フィールドの作成画面
集計フィールドの作成画面が表示されますので、各種設定を行っていきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/2364ba90-e4dc-ab44-64d2-fdc142a9b542.png)

まずはフィールド名を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/9e191f86-1963-6ea1-7e68-3c041c05f691.png)

仕入日(曜日) と入力して完了ボタンをクリックしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/78d2b831-81a8-c2fc-748e-c38a983776dc.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/eff2175c-e3c0-3794-4462-87c5ee9f9613.png)

## weekday 関数から曜日を求める。
次は、関数の入力欄に"weekday"と入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/25c1ff49-3beb-b12e-fa90-36980dfbb409.png)

表示された関数 weekday をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/e4790c25-6c08-49d8-64ab-566583873af5.png)

すると、数式に関数が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/83b24e59-dadf-5299-22e4-de4e08cac43a.png)


一旦、{日付/時刻}となっている部分を削除します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/de375d84-6761-8b44-381a-d4669a244806.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/d4cb6d8c-b9f1-8612-83fc-afd78d37d994.png)

代わりに仕入日を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/c4d8af37-2f48-0ab7-08f3-d53bcfadfb6b.png)

仕入日が関数の引数に設定されたことを確認しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/10b4a78d-01e2-f421-c8ee-f620a6645710.png)

あとはフィールドの作成をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/6b7a3395-5887-4023-f3f5-34e290f3348d.png)


補足までに、weekday関数の仕様はこちら。
https://www.revealbi.io/help/date-calculated-fields#weekday

新規フィールドが作成できました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/abfe3de1-2c6e-14ae-246f-dff53d63c4f2.png)

それでは、仕入日と仕入日(曜日)を並べて表示して、どうなるか確認してましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/0866f791-f548-be6d-1eb1-388e9808fb97.png)

仕入れ日に対し、曜日が表示できました。
ちなみに weekday 関数の仕様として、各曜日に対応した数値を返却しています。

| 曜日       |   weekday関数の戻り値  |
|:-----------------|------------------|
|日曜日|1|
|月曜日　|2|
|火曜日　|3|
|水曜日　|4|
|木曜日　|5|
|金曜日　|6|
|土曜日　|7|


## でも曜日が数値は分かりにくい..ので日本語表記に変換しよう！
せっかく表示した曜日項目ですが、数値だと分かりにくいですよね...。
なので if 関数を利用して日本語表記の曜日に変換しましょう！

```
if(weekday([仕入日])=1,"日",if(weekday([仕入日])=2,"月",if(weekday([仕入日])=3,"火",if(weekday([仕入日])=4,"水",if(weekday([仕入日])=5,"木",if(weekday([仕入日])=6,"金",if(weekday([仕入日])=7,"土","")))))))))
```

かっこ悪いですが、このように愚直にifで変換できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/6f3577b8-6c3c-01db-a4dc-2f4d5476e265.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/2b1b1a21-c051-04b0-724c-e8f9dbf8d56f.png)


# 仕入日(曜日)フィールドをグラフの可視化や、フィルタに利用する。

追加したフィールドは、可視化項目や、フィルタとしても利用できます。

## 項目として可視化
例えば、曜日別の仕入れ額をグラフ化したり。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/81cb120f-f633-ba33-b8c5-512491c7c00d.png)

## フィルタに利用
データフィルタでフィルタすることにより、土日だけのデータを可視化出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48623/f0f893dd-5a9d-0400-c898-95594df8be09.png)


# まとめ
本記事では、データソースの列の他に、集計用のフィールドを作成する方法についてご紹介しました！
特に曜日の表示や、ＸＸ率等の計算結果を新規フィールドしたいというリクエストはよくあるご要望だと思います。

本記事では、weekday と if 関数をご案内しましたが、Revealには他にも関数が多数用意されているのでぜひご活用ください！

(参考)Reveal計算フィールド
https://www.revealbi.io/help/calculated-fields