如何获得DAX中的状态持续时间?

时间:2019-04-17 05:22:48

标签: powerbi dax

假设我有一个PowerBI表,其中包含进入每种状态的时间:

Object | State | Start |
  1        A       0
  2        A       0
  3        B       0
  1        B       3
  2        B       4
  1        C       5

现在我想创建一个计算列,显示每个对象在每种状态下的时间量,例如给定以上数据,我希望输出看起来像这样:

Object | State | Start | Calculated Column |
  1        A       0             3
  2        A       0             4
  3        B       0             10
  1        B       3             2
  2        B       4             6
  1        C       5             5

(假设当前时间是10)

请注意,状态顺序不一定是已知的。在我的示例中,它们是ABC,但在实际情况下它们是哈希值。

如何在PowerBI / DAX中执行此操作?

1 个答案:

答案 0 :(得分:1)

这是我尝试过的:

Column = 
var CurrentTime = 10 
var CurrentObj = Table1[Object]
var CurrentStart = Table1[Start]
var CurrentState = Table1[State]
var NextStart = CALCULATE(FIRSTNONBLANK(Table1[Start],1=1), FILTER(Table1, Table1[State] = CurrentState + 1),FILTER(Table1, Table1[Object]=CurrentObj))

RETURN IF(ISBLANK(NextStart), CurrentTime - CurrentStart,NextStart - CurrentStart)

结果:

enter image description here