SBI中的PowerBI中的Sumif不能与DAX功能一起正常使用

时间:2019-07-04 18:33:55

标签: powerbi dax

我尝试在PowerBI中使用等效的SUMIF。我已经读过很多类似的主题,这些主题描述了CALCULATE和SUM结合FILTER函数的用法。但是他们都不能帮助我解决我的问题。

我想做什么:

生产线在启动事件(例如机器启动,机器停止等)时将时间戳记写入CSV文件。通过PowerQuery处理CSV文件,使所有开始日期在表的一列中均可用。该列称为“事件开始”。

要进一步分析机器的事件,我想添加另一列“ Event End”,其中也包含每个事件的结束日期。 CSV文件未提供结束日期,但它等于下一个事件的开始日期。

所以我要做的是在n行2列中取一个值,该值取自n + 1行1列。在Excel中,这样做非常容易... 一种解决方案(不是最好的解决方案-我知道不是最好的解决方案)是将SUMIF与Index列和Index + 1列一起使用:

enter image description here

我想到了使用SUMIF的想法,因为我知道DAX表达式(CALCULATE,SUM和过滤器)具有等效的功能。不幸的是,在这种情况下,其他线程中给出的所有示例均无效。

有人可以帮我吗?也许还有另一个DAX功能可用来解决此问题。

1 个答案:

答案 0 :(得分:1)

这里有两个选择。第一个返回[Start Event],其中[Index]比当前行的[Index]高1。

第二个返回的[Start Event]最小,大于当前行中的[Start Event]。

End Event =
CALCULATE (
    MAX ( 'Table1'[Start Event] ),
    FILTER ( 'Table1', 'Table1'[index] = EARLIER ( 'Table1'[index] ) + 1 )
)  

End Event 2 =
CALCULATE (
    MIN ( 'Table1'[Start Event] ),
    FILTER ( 'Table1', 'Table1'[Start Event] > EARLIER ( 'Table1'[Start Event] ) )
)

enter image description here