Страницы: 1
RSS
DAX. Количество дней между датами событий., Необходимо выполнить вычисление в столбце таблицы.
 
Здравствуйте!
Прошу подсказать решение задачи. Не получается решить задачу в таблице.

Имеется таблица "События" со следующими полями:
  1. дата
  2. событие 1
  3. событие 2
Необходимо создать вычисляемый столбец, где будет вычисляться сколько дней прошло с момента любого события.
По условию:
Код
Day = 
    SWITCH(
        TRUE(),
        [событие 1] > 0, [дата],
        [событие 2] > 0, [дата],
        BLANK()
    )



если BLANK, то вычисляется количество дней до прошлого события.
Верю, что задачу можно решить без промежуточных столбцов.

Необходимый результат:

 
Изменено: ivanka - 09.10.2020 16:50:12
 
Доброе время суток.
ivanka, не проще ли такой столбец считать на порядке дат в Power Query - ведь только из него данные попадают в модель Power BI? Зачем DAX то этим мучать?
Код
=
VAR thisDate = 'events'[дата]
VAR dateFilter =
    FILTER(
        'events';
        'events'[дата] <= thisDate
            && ( 'events'[событие 1] <> 0
            || 'events'[событие 2] <> 0 )
    )
VAR beforeOrThisEventDate =
    CALCULATE( MAX( 'events'[дата] ); dateFilter )
RETURN
    thisDate - beforeOrThisEventDate
Изменено: Андрей VG - 09.10.2020 20:57:51
 
Андрей VG, здравствуйте! Отличная мера! Всё хорошо работает. Благодарю!

"не проще ли такой столбец считать на порядке дат в Power Query - ведь только из него данные попадают в модель Power BI? Зачем DAX то этим мучать?"
Андрей VG, буду благодарен, если подскажите ссылку на "считать на порядке дат в Power Query".

Действительно, это можно сделать в PQ. Часть таблицы я построил в PQ (то, что не нужно будет менять), часть в DAX. В данном случае я выбрал DAX т.к. изменить условия вычисления проще, чем в PQ. В PQ изменив один шаг, мне возможно понадобится изменить всё то, чтобы было сделано после.

PQ я очень даже уважаю! Просто если мне где-то нужна гибкость, потенциально придётся изменить логику, контекст - выбираю DAX.
Изменено: ivanka - 12.10.2020 09:57:52
Страницы: 1
Наверх