自作のVizについて解説してみた①~野球結果編~

こんにちは!
DATA Saber挑戦中のふーたと申します。

今回はコミュニティ活動の一環でもあるViz作りに際して、自身で作成したダッシュボードの解説と、個人的につまづいたポイントやその部分に対する解決方法などをまとめたいと思います。
今回のDATA Saber挑戦のため、3つのVizを作りましたので、とりあえずは全3回の予定です。
(また作ったらやるかも)

ではごゆるりとお付き合いください(^^)


Vizのご紹介

まずは作成したVizを共有させていただきます。

ぜひぜひこのnoteと見比べながらお読みいただけますと嬉しいです!

Vizについて

  • ターゲット

    • プロ野球ファンの方
      (あわよくば私と同じ、セ・リーグの巨人もしくは横浜のファンの方)

  • 構成

    • 野球ファンなら誰しもが気になるであろう順位表を左上に設定

    • 「○○日時点では何位だったのか」が確認できるよう、過去の順位の推移も見られるように設定

    • 下部にはお気に入りの選手の今シーズンの成績が確認できるよう、主要指標である「打率」「打点」「HR数」を設定


つまづいたポイント

何よりも「順位推移」のVizに時間がかかりました…!
Tableauに触れたことがある方であれば誰しもが一度はつまづいたことがあるであろう、【クエリパイプライン】に苦しめられました。。

クエリパイプラインとは?

簡単に言うと、Tableau内部で実行されているアクションの順序のことで、以下の順番で実行されています。

色々調べている際に非常に助かったnote(著:みのる 様)より抜粋させていただきました。
画像クリックでご本人様のnoteに遷移できます。

何にそんなにつまづいたかというと、
1.順位の推移を出すためには、過去のある時点での勝率を出さなければならない。
2.過去のある時点での勝率を出すためには、その時点での勝ち数・負け数が分からないといけない。
3.その時点での勝ち数・負け数を出すためにはシーズン開幕時からの累計を計算しなければならない。
4.クエリパイプライン上、累計は↑の画像でいう⑤と⑥の間の「△表計算」の位置で集計されるものである。
5.任意の期間に絞って見てほしいので、そのためにはフィルタに期間を設定する必要がある。
6.期間をフィルタに入れると④ディメンションフィルタとして機能してしまう。
7.「△表計算」での計算が狂う。
という穴にどっぷりハマってしまいました。。

試した方法

LOD計算  結果:失敗

『「△表計算」だとディメンションフィルタに勝てないのだから、LOD計算を使って計算を早めにやってしまえ!』
という安直な考えのもと実行しました。

結果、
『LOD計算の中にRUNNING_SUM()が入らない。。』
『無理に作成したらRUNNING_SUM( SUM( {FIXED ~~: SUM()}))というとんでもない入れ子の計算式が爆誕。しかも結局これだと△表計算じゃん。。』
ということで玉砕しました。

これで解決!

それなら逆に
『期間のディメンションフィルタの実行順位を下げてしまえ!』
ということで、④ディメンションフィルタが、⑥△表計算フィルタになるように期間の計算フィールドを作成しました。

計算フィールド内の式(↓)

DATE(LOOKUP(ATTR(DATETRUNC('day',[日程])),0))

△表計算に当たる関数を調べていた際に LOOKUP が表計算に当たると知ることができたので作成できました。

これにて無事解決!!

クエリパイプライン Tableau公式ページ(↓)


今回の投稿は以上です。
Viz作成において、クエリパイプラインをきちんと理解することは非常に重要だと痛感したのでした。。
ただ、今後は今回の教訓を生かしてスムーズに思い通りのVizが、、作れるようになれたらいいなあ笑

ではでは、お読みいただきありがとうございました!
またお会いできますことを祈っております!


最後に。。
データ更新が大変すぎるーーーーーーー!!!!!



この記事が気に入ったらサポートをしてみませんか?