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

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

Ниже приведен пример использования формулы Excel. =ЕСЛИ(E3=1,СУММЕСЛИМН($F$3:$F$17,$C$3:$C$17,D3,$E$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

person Sing Kiing Ling    schedule 13.01.2017    source источник


Ответы (1)


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

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

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

Это повторит результаты, которые вы смогли вычислить с помощью СУММЕСЛИМН() в 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)

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

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

person RedVII    schedule 16.01.2017
comment
Вместо того, чтобы помещать в качестве вычисляемого столбца, какой будет формула для меры? - person Sing Kiing Ling; 17.01.2017
comment
x:=var a=[DATA1] var b=[DATA2] return if([hour]=1,a,b) Я пытался измерить, но выдает ошибку - person Sing Kiing Ling; 17.01.2017