Как получить последние значения столбца для каждого отдельного значения другого столбца в DAX - PullRequest
1 голос
/ 02 апреля 2019

Мне не терпится создать вычисляемый столбец в Power BI с помощью DAX.Из моей таблицы в виде

projects   valid_date    target
2M         03/24/2019    0.9
3D         03/25/2019    1
5K         03/25/2019    0.9
2M         03/26/2019    0.9
3D         03/26/2019    0.5
5K         03/24/2019    0.6
...        ...           ...

я пытаюсь сгенерировать cloumn, который содержит значение для цели, но только если это один из последних «valid_date» для каждого отдельного проекта.

Результат ("latest_target") должен выглядеть следующим образом:

projects   valid_date    target    latest_target
2M         03/24/2019    0.9       NULL
3D         03/25/2019    1         NULL
5K         03/25/2019    0.9       0.9
2M         03/26/2019    0.9       0.9
3D         03/26/2019    0.5       0.5
5K         03/24/2019    0.6       NULL
...        ...           ...       ...

Как будет выглядеть формула DAX для такого столбца?Я уже опробовал некоторые формулы, но, поскольку мне не хватает эффективного перевода моих идей T-SQL в DAX, я не думаю, что было бы полезно поделиться ими здесь.

1 Ответ

2 голосов
/ 02 апреля 2019

Предполагая, что ваша таблица называется «My_Table»:

Latest Target =
   VAR 
     Latest_Date = CALCULATE(MAX(My_Table[valid_date]), ALLEXCEPT(My_Table[projects]))
   RETURN 
     IF(My_Table[valid_date]=Latest_Date, My_Table[target])

Как это работает: Сначала мы находим последнюю (максимальную) дату для каждого «проекта». ALLEXCEPT позволяет нам сделать это - для каждой записи мы видим всю таблицу, отфильтрованную этой записью «проект». - затем, сравнивая максимальную дату и дату записи, мы выясняем, является ли она последней.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...