Как динамически сравнивать тот же период на основе слайсера - PullRequest
0 голосов
/ 10 января 2019

Я бы хотел сравнить тот же период сеансов в день. Если я смотрю с 10 октября 2018 года по 16 октября 2018 года (со среды по вторник), я хотел бы сравнить его с диапазоном того же дня на прошлой неделе:

+------+-------+-----+----------+-------------+--+
| 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))

но я бы хотел, чтобы формула зависела от среза даты. Скажите, если бы я хотел посмотреть на 1 октября - 20 октября. Я бы хотел, чтобы моя формула изменилась и посмотрела на тот же период прямо с тем же количеством дневных интервалов. В конечном счете это также будет отражено.

1 Ответ

0 голосов
/ 10 января 2019

Попробуйте это:

same_last_period =
VAR DayCount = CALCULATE(DISTINCTCOUNT(table[Date]), ALLSELECTED(table[Date]))
RETURN CALCULATE(SUM(table[Sessions]), DATEADD(table[Date], -DayCount, DAY))

Edit:

Это выше не работает, как я задумал, так как у вас все еще есть год, месяц и день в контексте фильтра. Это должно быть удалено.

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.

Result

...