Dax sumifs . Как преобразовать формулу Excel в формулу Dax

Как преобразовать формулу Excel в формулу Dax. Я хочу узнать сумму кол- во часов предыдущего дня 24, если текущий час равен 1.

Ниже приведен пример использования формулы Excel. = ЕСЛИ (Е3=1, СУММЕСЛИМН ($F$3:$F$17,$C$3:$C$17,D3, Е $ $3:$E$17,24),0)

date,previous date,hour,qty,Formula

10/10/2016,10/09/2016,24, 5,0
10/11/2016,10/10/2016, 1, 1,8
10/12/2016,10/11/2016,24, 2,0
10/13/2016,10/12/2016,24, 2,0
10/13/2016,10/12/2016, 3, 2,0
10/14/2016,10/13/2016, 1, 2,32
10/14/2016,10/13/2016, 1, 2,32
10/14/2016,10/13/2016,24,10,0
10/14/2016,10/13/2016, 4,10,0
10/14/2016,10/13/2016,24,10,0
10/13/2016,10/12/2016,24,10,0
10/13/2016,10/12/2016, 1,10,2
10/13/2016,10/12/2016,24,10,0
10/13/2016,10/12/2016,24,10,0
10/10/2016,10/09/2016,24, 3,0

1 ответ

Решение

Допустим, ваша таблица называется Table1.

Создайте вычисляемый столбец с этой формулой:

CALCULATE(SUM(Table1[qty]),FILTER(Table1,[date] = (EARLIER([date]) - 1) && 
Table1[hour]=24 && EARLIER([hour]) = 1))

Это будет повторять результаты, которые вы смогли рассчитать с помощью SUMIFS() в Excel.

Теперь вы можете полностью использовать эту формулу и работать с ней, но небольшое предостережение заключается в том, что она возвращает пустое значение вместо 0 для случаев, когда формула не применяется. Чтобы справиться с этим, вы можете использовать пустую проверку в DAX, например, так:

=var x = 
CALCULATE(SUM([qty]),FILTER(Table1,[date] = (EARLIER([date]) - 1) && Table1[hour]=24 
&& EARLIER([hour]) = 1))
RETURN IF(ISBLANK(x),0,x)

Вот экран результатов, с вычисленным столбцом справа:

введите описание изображения здесь

Другие вопросы по тегам