首页 > 解决方案 > 如何在 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)

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

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

标签: powerbidax

解决方案


这是我尝试过的:

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)

结果:

在此处输入图像描述


推荐阅读