WINDOW関数について
DATA Saber TrainingのIntermediate2で突然出てきて、その後Advancedでも多用されているWINDOW関数について理解があいまいだったので備忘録として整理したいと思います。
WINDOW関数とは
WIDOW関数とはWINDOW内の集計結果を返す関数のことで
WINDOW_SUM、WINDOW_MAX、WINDOW_AVGなどがよく使われます。
WINDOW内の集計結果…?と言葉だけではわからないので実際にサンプルスーパーストアのデータで計算したいと思います。
これはオーダー年、カテゴリごとに見たSUM([売上])になります。
代表的なWINDOW関数(WINDOW_SUM、WINDOW_MAX、WINDOW_AVG )を入れて計算結果を見てみましょう。
①WINDOW_SUM
数式:WINDOW_SUM(SUM([売上])
上記のような結果になります。
これはオーダー年ごとの売上の合計値を計算しています。
なので計算結果は2013年はどのカテゴリも同じ値が入っています。
ちなみに、どの範囲で集計するのかは「次を使用して計算」から変更することができます。
(デフォルトは表(横)に沿った計算になります)
表(下)を使用した計算結果はこちら↓
表(下)に沿った計算をするとカテゴリごとの合計値が計算されます。
※参考までにLOD計算のEXCLUDEを使っても同じ結果を出すことができます!
数式
表(横)→{EXCLUDE[カテゴリ]:SUM([売上])}
表(下){EXCLUDE[オーダー日]:SUM([売上])}
②WINDOW_MAX
数式:WINDOW_MAX(SUM([売上])
それぞれ表(横)と表(下)に沿った計算を表示しています。
表(横)を使った計算だと、その年の中で売上が1番大きかったカテゴリの数字が返ってきます。
2013年であれば家電のカテゴリが1番売上が大きいので14,084,755という数字になります。
表(下)を使った計算だと、そのカテゴリの中で売上が1番大きかった年の数字が返ってきます。
家電カテゴリであれば2015年の売上が1番大きいので24,615,551という数字が返ってきます。
③WINDOW_AVG
数式:WINDOW_AVG(SUM([売上])
同じように表(横)と表(下)に沿った計算を表示しています。
表(横)を使った計算だと、その年のカテゴリごと売上の平均が返ってきます。
2013年だと(家具13,659,370+家電14,084,755+事務用品10,127,254)÷3=12,623,793という計算になります。
表(下)を使った計算だと、そのカテゴリの4年間の売上平均が返ってきます。
Vizでの活用方法
WINDOW関数がどのような計算なのかがわかったところでVizでの活用方法を紹介します。
WINDOW関数をVizで使うときは「色」に入れることがほとんどだと思うのでその説明をしたいと思います。
よく使われる2つのパターンを紹介します。
活用例①売上が最大値のグラフを色付けして強調したい
使う関数:WINDOW_MAX
数式の例:WINDOW_MAX(SUM([売上]))=SUM([売上])
これはWINDOW_MAXで計算した値と同じ値のものを「真」としてそれ以外のものを「偽」とする、という意味です。
年、カテゴリごとに見た売上のグラフで、にWINDOW関数を入れてデフォルトの表(横)を使って計算するとこのようになります。
表(横)なのでオーダー年に沿って最大値を計算し、それと同じ値のものを「真」としてオレンジ色に塗っています。
2013年、2014年は家具と家電の売上が拮抗していて、色の塗分けがないと一目ではどちらが最大かわかりにくいですが、オレンジ色に塗られていることですぐに最大値がでどれか認識できますね。
カテゴリだと3つだけなので色塗りをしなくても最大値を認識するのにそこまで時間がかからないですが、列に「地域」を追加してグラフの数を増やすと色塗りをしないとわかりにくいです。
「地域」を使用してWINDOW_MAXを計算しています。
ぱっと見たときの理解度が全然違いますね。
上記のように列にカテゴリ、地域の2つが入っているときに「表(横)」を使って計算すると、オーダー年という切り口で見たときのカテゴリ&地域別売上の最大値になってしまい、以下のように1つしか真になりません。
何を使って計算しているかを意識しないと思っていたものと違う結果が返ってきてしまうので、注意が必要です。
表(横)とか表(下)というのは集計表をイメージするとわかりやすいと思います!
ちなみに表(下)を使って計算するとこのようになります。
カテゴリごとに売上が最大だった年のグラフがオレンジで塗られます。
活用例②平均値を超えているグラフを色付けして強調したい
使う関数:WINDOW_AVG
数式の例:WINDOW_AVG(SUM([売上]))<=SUM([売上])
これはWINDOW_AVGを使って計算した売上平均の値以上のものを「真」、平均より小さいものを「偽」とする、という意味です。
年、地域ごとに見た売上のグラフで、WINDOW関数を色に入れてデフォルトの表(横)を使って計算するとこのようになります。
オーダー年ごとの地域別売上の平均を計算し、それ以上の地域は「真」としてオレンジ色に塗っています。
わかりやすいようにアナリティクスラインで平均線も表示してみました。
アナリティクスラインだけでも表現できますが例えば2013年の九州の売上は平均を超えているのかわかりにくいです。
まとめ
今回紹介した活用例①も②もWINDOW関数を使わなくてもグラフをよく見ればわかりますが、色塗りがされていた方が断然わかりやすいことが明らかだと思います。
Tableauは大量のデータをビジュアライズ化することに適したツールです。
その特性を最大限に活用するにもこのような技はどんどん活用していきたいですね!!