以下のようなデータがあるとします。
| date | device | visits |
|----------|--------|--------|
| 2018/1/1 | pc | 50 |
| 2018/1/1 | sp | 50 |
| 2018/1/2 | pc | 70 |
| 2018/1/2 | sp | 80 |
| 2018/1/3 | pc | 100 |
| 2018/1/3 | sp | 30 |
| 2018/1/4 | pc | 90 |
| 2018/1/4 | sp | 60 |
・・・・
| 2019/1/1 | pc | 70 |
| 2019/1/1 | sp | 80 |
| 2019/1/2 | pc | 30 |
| 2019/1/2 | sp | 100 |
date(年・月・日)、device(ディメンジョン)、visits(メトリクス)データです。(表では省略していますが、日付は2018の1月1日から2019年の1月2日まで存在している)。
これのデータに対して、
2019年のvisitsの合計と2018年の1月のvisitsの合計の前年比を算出したい場合に、通常の簡易表計算の前年比を使うと、
2019年の1月1日~1月2日 / 2018年の1月1日~1月31日となってしまいますが、これを
2019年の1月1日~1月2日 / 2018年の1月1日~1月2日 という計算を行う計算フィールドはどう作ればいいでしょうか?
もうすこし一般化して書くと、「常に分子で得られた最大の日付と同じ日付までを分母の日付の対象にした分数を算出する」ということです。
LM-7です。
サンプルデータを添付してください。
superstoreを使うなら、パラメータ[指定日]で今日の日付を指定するとして、
[今月売上]は
IF DATETRUNC('month', [オーダー日]) = DATETRUNC('month', [指定日]) AND
[オーダー日] <= [指定日]
THEN
[売上]
END
[前年売上]は
IF DATETRUNC('month', [オーダー日]) = DATETRUNC('month', dateadd('year',-1, [指定日])) AND
[オーダー日] <= dateadd('year', -1, [指定日])
THEN
[売上]
END
[前年同月比]は
SUM([今月売上])/SUM([前年売上])
で表示できます。
DATETRUNC関数とDATEADD関数を使うのがミソです。