Filter Dax sumifs。如何将Excel公式转换为Dax公式

Filter Dax sumifs。如何将Excel公式转换为Dax公式,filter,dax,sumifs,tabular,measure,Filter,Dax,Sumifs,Tabular,Measure,如何将Excel公式转换为Dax公式。如果当前小时数为1,我想找出前一天24小时的总数量 下面是使用excel公式的示例。 =如果(E3=1,SUMIFS($F$3:$F$17,$C$3:$C$17,D3,$E$3:$E$17,24),0) 假设您的表被称为Table1 使用以下公式创建计算列: CALCULATE(SUM(Table1[qty]),FILTER(Table1,[date] = (EARLIER([date]) - 1) && Table1[hour]=24 &

如何将Excel公式转换为Dax公式。如果当前小时数为1,我想找出前一天24小时的总数量

下面是使用excel公式的示例。 =如果(E3=1,SUMIFS($F$3:$F$17,$C$3:$C$17,D3,$E$3:$E$17,24),0)


假设您的表被称为Table1

使用以下公式创建计算列:

CALCULATE(SUM(Table1[qty]),FILTER(Table1,[date] = (EARLIER([date]) - 1) && 
Table1[hour]=24 && EARLIER([hour]) = 1))
这将复制使用Excel中的SUMIFS()计算的结果

现在,您可以完全使用这个公式并使用它运行,但需要注意的是,对于公式不适用的情况,它将返回空白而不是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)
这是一个结果屏幕,右侧有计算列:


如果([hour]=1,a,b)我试图进行测量,但给出了错误,则返回x:=var a=[DATA1]var b=[DATA2],而不是作为计算列进行计算
=var x = 
CALCULATE(SUM([qty]),FILTER(Table1,[date] = (EARLIER([date]) - 1) && Table1[hour]=24 
&& EARLIER([hour]) = 1))
RETURN IF(ISBLANK(x),0,x)