ピボット形式で periodOverPeriodLastValue を利用した時のフィルターについて

前年実績や、前年比をperiodOverPeriodLastValueを利用して作成しています。
前年の実績を取得するためには、1年前であれば過去1年分以上のデータが必要となり、それよりも短い期間でフィルターをしてしまうと計算ができないと思っています。

Classmethodさんの記事でグラフを利用した前年比の作成を行っており、1年前のデータは計算で利用するだけで、表示を行いたくない場合にどのようにしたらよいか、について記されています。

ピボットで利用した場合、1年前のデータを表示させなくする方法があれば、教えていただきたいです。

本件ですが、DemoCentralの以下の箇所が参考になると思います。
https://democentral.learnquicksight.online/#Dashboard-TipsAndTricks-Calculation-Year-over-Year-Table-with-Filtering-aka-Date-Hider-
Date Hiderの箇所を試してみてください。

2 Likes

ありがとうございます。

DemoCentralを参考に対応してみたところ、やりたいフィルターにすることができました!

1 Like

以前こちらでご質問させていただいて、ご紹介いただいた以下計算フィールドについて追加お伺いしたいです。

minOver(min({order date}), [{order date}])

上記計算フィールドで、データをフィルターせずに、ビジュアルの表示上でフィルターができますが、この計算フィールドの動きがいまいちピンときておりません。

この計算フィールドで起こっている動きについて、お伺いしたいです。

上記の計算フィールドは、少しトリッキーな計算フィールドになっています。

というのも、日付で単純にフィルターをしてしまうと、QuickSightの仕様上ビジュアル表示前にフィルターされてしまい、今回のような過去データとの集計計算が実施できなくなります。ドキュメントの計算の評価順序を参考ください。この場合のフィルターは上位のAnalysis Filtersにあたり、集計計算は下位のaggregationに位置付けられており、集計計算実施時には既にフィルターされたデータが対象になることがわかります。

QuickSightには、集計後に適用されるフィルターもあるので(図のaggregationの下にあるFiltersになります)、今回実施したいフィルターをこのフィルター(集計の上でフィルター実施)にて実施することで問題を解決することができます。min()で集計すると、集計後のデータとなりレコード(行)レベルではなくなるので、LAC-Wを使用し、レコード(行)レベルの集計データとし、それをフィルター適用することで実現しています。

1 Like

ありがとうございます!
計算の評価順序について、知識がなかったため、非常に参考になりました。

内容が複雑でしたので、自分なりに解釈をおこなったのですが、以下の認識であっていますでしょうか?
計算の順番として、
①LAC-Wで先にminOverでorder dateのパーティションで行レベルに計算することにより、元のorder dateと同じ日付を計算フィールドで作成
②上記の計算結果を、更にmin(order date)を利用することでビジュアルレベルに昇格
③上記をフィルターすることてhavingのような動きをしている
前年比の計算は①もしくは②の段階で計算されているため、前年比が取得できている

DemoCentralの表記でビジュアルだけフィルターという表現も、最終フィルターはされているが、計算はフィルター前にすべて行っているためそのような表現になったということと読み取りました。

間違っていますでしょうか?

その認識で問題ありません。

DemoCentralの表記は、その日付でフィルターをしているのは事実なのですが、実際のやり方は、そのビジュアル上で過去のデータを隠して(Date-Hider)実施しているので、そのような表現になっています。

1 Like