【问题标题】:Dax sumifs .How to convert Excel formula to Dax formulaDax sumifs。如何将 Excel 公式转换为 Dax 公式
【发布时间】:2017-01-13 03:54:41
【问题描述】:

如何将 Excel 公式转换为 Dax 公式。如果当前 hour 是 1 ,我想找出前一天 hour 24sum qty

以下是使用 excel 公式的示例。 =IF(E3=1,SUMIFS($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

【问题讨论】:

    标签: filter dax sumifs tabular measure


    【解决方案1】:

    假设您的表名为 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)
    

    这是结果屏幕,右侧是计算的列:

    【讨论】:

    • 不是作为计算列,而是度量公式是什么?
    • x:=var a=[DATA1] var b=[DATA2] return if([hour]=1,a,b) 我试图衡量但它给出了错误
    猜你喜欢
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多