Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DataStudioで複数の項目に対してある項目が占める割合を円グラフ以外でも表現する #134

Open
Kesin11 opened this issue May 23, 2020 · 0 comments

Comments

@Kesin11
Copy link

Kesin11 commented May 23, 2020

例えば、以下のような「CIのビルド履歴情報データ」に対してSUCCESSの割合を表示したいケース。

date status
2020/05/20 SUCCESS
2020/05/20 SUCCESS
2020/05/20 ABORTED
2020/05/20 SUCCESS
2020/05/21 FAILED
2020/05/21 FAILED
2020/05/21 SUCCESS
2020/05/22 FAILED
2020/05/22 SUCCESS
2020/05/22 SUCCESS

これは当然円グラフを使えば一発で作ることができます。

circle_graph

しかし、例えば日毎のSUCCESSの割合推移を折れ線グラフで表現したい場合、DataStudioではグラフの種類や設定だけではそれを実現することはできません。
単純にグラフを描こうとすると、ステータス毎の推移を出すことしかできません。

time_series

解決策

割合を表現するためには、SUCCESSのレコード数 / 総レコード数の数値を算出する必要があります。手元のデータではstatusカラムはSUCCESS | FAILED | ABORTED いずれかの文字列なので、これをどうにかSUMで数えるための数値に変換する必要があります。

そのような場合は、DataStudioで既存のカラムを加工して新しいカラムを作成する機能を使います。
ここでは式を書くことができるので、このようにCASE WHENとCONTAINS_TEXT()を使って"SUCCESS"であれば1、それ以外は0とする新しいカラムを作成します。

new_field

この新しいカラムをsuccess_countと仮に呼びましょう。"SUCCESS"のレコードだけが1, それ以外のレコードには0となるので、SUM(success_count) = SUCCESSのレコード数となります。
最終的にはSUCCESSのレコード数 / 総レコード数を表現したいわけですが、これはAVG(success_count)と一致します。

というわけで、折れ線グラフの指標にstatus_countをセットしてデフォルトのSUMからAVGに変更します。すると、このように所望のグラフを手に入れることができます。

avg_time_series
(下の表は検算用。グラフ上のSUCCESSの割合が正しいことがわかります)

たまにこういうグラフを描きたいのですが、自分でもやり方をよく忘れるので今回備忘として書かせていただきました。
ちなみに、この方法は元々海外のスレで見つけたものなので参考として貼っておきます。
conditional count - Data Studio Community

試したがダメだった方法

最初はSUCCESSのものだけをカウントすればよいだろうと考えて、表に以下のようなフィルターを設定しました。
filter

しかし、これでは上手くいきません。その理由は、フィルターをかけるということはグラフの描画対象となるレコードそのものを絞ることになるためです。
つまり、SUCCESSのレコード数 / 総レコード数の"総レコード数"そのものが"SUCCESSのレコード数"になってしまうのです。

それでは平均を計算したところで当然常に1の値になってしまいます。そのような理由でこの方法は上手くいかないです。

さらにtips

"success_count"をDataStudio側で新しいカラムとして作成してもいいのですが、もしも同じデータを複数のDataStudioレポートで使う可能性があるのであれば元データの方でこれと同じカラムを作ってしまった方が良いでしょう。

DataStudioのレポートをコピーするときにデータリソースを別物として新しく作成する場合は、DataStudio側で作成した新しいカラムなどは引き継がれません。
コピー時の手作業が増えることになるので、それなりの数をコピーする予定があるのであれば元データ側で対応してしまう方が楽です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant