#powerbi #dax
#powerbi #dax
Вопрос:
У меня есть такой столик. Обратите внимание на пустые значения внизу.
Я хотел бы получить значение последней даты, но значение не может быть нулевым.
Моя формула DAX возвращает значение последней даты ( 19/12/2021
), null
однако я хочу вернуть последнее ненулевое значение, которое относится к дате 21/11/2021
.
Вот что я пробовал до сих пор:
Latest Value = CALCULATE( // get sum of value column SUM('Table1'[Value]), // where value is not blank, and date is max date 'Table1'[Value] lt;gt; BLANK() amp;amp; Table1[Date] = MAX(Table1[Date]) )
Я подумал, что это должно вернуть цифру 305? Потому что мои условия таковы:
where value is not null AND where date = max date
Не должна ли максимальная дата теперь быть 21/11/21
, потому что нули были удалены?
Еще одна часть DAX, которую я пробовал, используя эту fiter
функцию.
Latest Value = CALCULATE( SUM('Table1'[Value]), FILTER(ALL('Table1'), 'Table1'[Value] lt;gt; BLANK() amp;amp; 'Table1'[Date] = MAX('Table1'[Date]))
Где я ошибаюсь? Я думаю, что это как-то связано с моей max date
секцией.
К сожалению, все файлообменники заблокированы на работе, поэтому я не могу поделиться этим фиктивным файлом.
Ответ №1:
Идея состоит в том, чтобы сначала отфильтровать таблицу и получить максимальное значение из столбца даты. В моем случае я сохранил эту дату в переменной last_date. Затем мы просто выбираем значение из столбца Значение, используя фильтр по last_date.
LatestValue = VAR last_date = CALCULATE ( MAX ( 'Table1'[Date] ), 'Table1'[Value] lt;gt; BLANK () ) RETURN CALCULATE ( SELECTEDVALUE ( 'Table1'[Value] ), 'Table1'[Date] = last_date )
или то же выражение с СУММОЙ:
LatestSumOfValues = VAR last_date = CALCULATE(MAX('Table1'[Date]),'Table1'[Value] lt;gt; BLANK()) RETURN CALCULATE(SUM('Table1'[Value]),'Table1'[Date] = last_date)
Комментарии:
1. Это работает, спасибо