Amazon QuickSight で前年同月比を確認できるグラフの作り方の紹介

「剣を握らなければ おまえを守れない 剣を握ったままでは おまえを抱き締められない」状態になり、苦心の末に生み出された前年同月比のグラフです。
2023.09.09

QuickSight で前年同月比のグラフを作成をするにはどうしたら良いのでしょうか?

サンプルデータとして私の毎月の AWS 利用費のデータを元にテーブルの作成を紹介します。

棒グラフではなくテーブル形式で前同月比を表示したい方は以下の記事をご参照ください

可視化に必要なデータの準備

私の環境を例に説明しますので基本となるmonthcostフィールドを説明します。

  • monthフィールドは年月が格納されたフィールド
  • costフィールドは AWS 利用費が格納されたフィールド

計算フィールドの作成

ビジュアルタイプはテーブル形式で過去 2 年分の年月(month)と、AWS利用費(cost)を表示します。必要な年月分のフィルタを作成すればこの様な表示が可能です。なぜ 2 年分必要かというと計算するためには前年分のデータを表示しておく必要がありました。

periodOverPeriodLastValueと、periodOverPeriodDifference関数を利用して比較計算した計算フィールドを作成します。

1 年前の値をそのまま表示するフィールド作成

1 年前のcostの値をそのまま表示するだけのcost_lastyearフィールドを作成します。periodOverPeriodLastValue関数の仕様で集計した値である必要があったためsum()costを集計した値を引数としています。

cost_lastyear

periodOverPeriodLastValue(sum(cost), month,YEAR,1)

1 年前の値と差額を表示するフィールド作成

該当月と、その 1 年前のcostの値の差額を表示するcost_diffrence_lastyearフィールドを作成します。こちらも同様にperiodOverPeriodDifference関数の仕様で集計した値である必要があったためsum()costを集計した値を引数としています。

cost_difference_lastyear

periodOverPeriodDifference(sum(cost), month,YEAR,1)

前年同月比の可視化

前年同月比を計算で求めるためのフィールドを追加したテーブルはこの様ないびつな形になりました。

ビジュアルタイプをテーブルからクラスター棒コンボグラフへ変更します。すると、分けのわからないグラフになります。ここからが勝負どころです。

問題点

  1. 1 年前の値は計算するために必要なだけで棒グラフとして表示される必要はない
  2. 棒グラフがすべて同じ色で見分けがつかない
  3. 差額を求めたフィールド(cost_diffrence_lastyear)は線グラフで表示したい

1 年前の値は不要なのにグラフに表示されてしまう

1 年前の値が不要なのでフィルターして対象月を直近 1 年にすると、比較計算するためのデータがなくなってしまい、今度は作成した計算フィールドの計算ができなくなります。グラフを範囲を狭めたいが、狭めると計算に必要なデータがなくなるジレンマを抱えます。

フィルター以外に棒グラフの表示をフィルター方法がありました。ビジュアルタイプフォーマットの X 軸から表示するデータポイントの数でデータポイント数を 12 にして直近 1 年分にグラフの表示数をフィルターできました。

弊害としてフィルターされたデータがその他としてグラフに表示され、不要なものが 1 つにまとまっただけの状態となりました。

解消方法は棒グラフの「その他」を右クリックして、非表示をクリックすることで消せます。

前年同月比を計算で必要なデータは残しつつ、グラフにして可視化するときには見せないことに成功しました。

これが QuickSight における正攻法なのかわからないですが、ずいぶんトリッキーな方法を取らないと求める形のグラフになりませんでした。

棒グラフが同じ色で見分けがつかない

棒グラフをクリックすると項目毎に色を変更できます。

色を変更しました。今度は色を変更した青色を左端へ並びを変更して見やすいしたいです。

  • 左端が今年の利用費(水色)
  • 真ん中が昨年の利用費(青色)
  • 右端が前年同月比の差額(水色)

上部のフィルードウェルから棒グラフの値にフィールド名が表示されています。

変更方法はフィールド名の位置をドラッグ&ドロップすることで位置を入れ替えられます。

青色のバーを左端へ移動できました。

差額を求めたフィールドは線グラフで表示したい

折れ線グラフを表示するには、棒グラフの値に登録されているフィールドを折れ線グラフの値へ移動します。

折れ線グラフが表示されました。色が水色で棒グラフ被って読み取れません。棒グラフ同様に折れ線グラフを右クリックして色を変更しようとしてもできませんでした。

Y 軸のビジュアルのフォーマットから凡例を表示をさせるようにします。

凡例に表示されたフィールド名を右クリックすることで色の変更ができました。

凡例が不要であれば凡例表示のチェックを外して戻すとこの様なグラフになります。文字が読めるようになって気になることは、数字の意味が初見だとわからないことです。

上部のフィルードウェルから通貨をドルに変更し、小数点以下は丸める設定を追加しました。

差額が何ドルなのか見やすくなりました。

まとめ

前年同月比のグラフを作成するには、テーブル表示にすると以下の情報が必要になる。

テーブル内容をクラスター棒コンボグラフへ変更しても人間が読み取れる状態ではないので、グラフ上でいろいろ手直しあげてやっと読み取れる状態になります。

おわりに

前年同月比のグラフを生成するのに 4 時間弱かかりました。QuickSight で同じことやろうと思った方の時間の節約になればと思い書き残しました。