日付の集計についてお伺いします。
下記の過去のQ&Aを参考にフィルターとperiodOverPeriodLastValueを活用し前年実績と本年実績を出すことができたのですが、ディメンションに追加したorderdateの集計方法を”週”に変更すると、前年実績が反映されなくなってしまいます。
日、月、年、四半期は表示されるのですが、原因は何でしょうか?
日付の集計についてお伺いします。
下記の過去のQ&Aを参考にフィルターとperiodOverPeriodLastValueを活用し前年実績と本年実績を出すことができたのですが、ディメンションに追加したorderdateの集計方法を”週”に変更すると、前年実績が反映されなくなってしまいます。
日、月、年、四半期は表示されるのですが、原因は何でしょうか?
ご質問ありがとうございます。
以下はダミーデータですが、ディメンションに日付データを配置し集計方法を”週”にしたものです。値のカラムは下記の計算フィールドになっており、それぞれの挙動を確認したものです。
①PoPLV_YEAR ⇒ periodOverPeriodLastValue(sum({actual_sales_amout}), salesdate, YEAR, 1)
②PoPLV_WEEK ⇒ periodOverPeriodLastValue(sum({actual_sales_amout}), salesdate, WEEK, 1)
③PoPLV_DEFAULT ⇒ periodOverPeriodLastValue(sum({actual_sales_amout}), salesdate)
ご質問の状況としては、①のように集計単位をYEARにしたperiodOverPeriodLastValueのフィールドにおいて、ビジュアルの集計単位が"週"だと値が表示されないものと理解しましたが認識相違ありませんでしょうか?
この原因ですが、periodOverPeriodLastValueの挙動として、単純に基準となる日付フィールドからperiod(YEAR)、offset(1)で指定した期間を差し引いた時点の集計データを表示するためだからと思われます。
つまり画面ショットの例だと、2019/05/05の行であれば、2018/05/05の行の値を持ってくることになります。2018年5月のデータ自体はデータセット内に存在していますが、テーブル上には該当する行が無いため値が表示されていないものと考えられます。
なお、比較までに②は集計単位をWEEK、③はデフォルト(ビジュアルの集計単位に一致する挙動のため結果的に同じくWEEK)にしたものですが、この場合はoffsetで指定した一つ前の行に該当するデータがあるため値が表示されます。
ちなみに、週単位の集計で前年度と比較したい場合には、以下のような計算フィールドを作ることで実現ができるかと思います。一年間の週数が52.14~52.28(うるう年)であることから52行前の値をテーブル関数で参照することで前年値を表示しています。ご参考になれば幸いです。
lag(salesdate, [salesdate ASC], 52)
lag(sum(sales), [salesdate ASC], 52)
difference(sum(sales), [salesdate ASC], -52)
いただいた質問について @ytakahr さんから回答がございますが、現在の状況はいかがでしょうか?質問のへの回答でご不明点や実現したいことがうまくできないようでしたら、お気軽にご返信いただけたらと思います。