Как получить значение на последнюю дату, если значения не являются нулевыми?

#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. Это работает, спасибо