我想比较每天的相同时段。如果我正在查看2018年10月10日至2018年10月16日(星期三至星期二),我想将其与上周的同一天范围进行比较:
+------+-------+-----+----------+-------------+--+
| year | month | day | sessions | last_period | |
+------+-------+-----+----------+-------------+--+
| 2018 | oct | 10 | 2000 | 2500 | |
| 2018 | oct | 11 | 2500 | 2400 | |
| 2018 | oct | 12 | 2600 | 2300 | |
| 2018 | oct | 13 | 2700 | 2450 | |
| 2018 | oct | 14 | 2400 | 2500 | |
| 2018 | oct | 15 | 2300 | 2200 | |
| 2018 | oct | 16 | 2000 | 1150 | |
+------+-------+-----+----------+-------------+--+
一个简单的公式可以使它基于7天的间隔:
same_last_period = CALCULATE(SUM(table[Sessions]),DATEADD(table[Date],-7,DAY))
但是我希望公式取决于日期分割器。假设我想查看10月1日至10月20日,我希望公式可以更改,并以相同的天数间隔查看之前的相同时间段。最终,它也会以图形方式显示。
答案 0 :(得分:1)
尝试一下:
same_last_period =
VAR DayCount = CALCULATE(DISTINCTCOUNT(table[Date]), ALLSELECTED(table[Date]))
RETURN CALCULATE(SUM(table[Sessions]), DATEADD(table[Date], -DayCount, DAY))
编辑:
由于您的过滤条件中仍包含年,月和日,因此以上内容无法达到我的预期效果。该需要删除。
same_last_period =
VAR DayCount =
CALCULATE (
DISTINCTCOUNT ( 'table'[Date] ),
ALLSELECTED ( 'table'[Date] ),
ALLEXCEPT ( 'table', 'table'[Date] )
)
RETURN
CALCULATE (
SUM ( 'table'[Sessions] ),
DATEADD ( 'table'[Date], -DayCount, DAY ),
ALLEXCEPT ( 'table', 'table'[Date] )
)
ALLEXCEPT
除去Date
之外的所有其他过滤器上下文。