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)
Вот экран результатов, с вычисленным столбцом справа: