DAX:根据日期/时间差查找处理时间和上次操作

时间:2018-11-08 03:53:55

标签: excel powerbi dax powerpivot

需要您的帮助以小时为单位,根据“最大操作数”查找“处理时间”以及上次操作的时间

DATEDIFF(
    CALCULATE(
        SUM(tableX[date/time]),
        ALLEXCEPT(tableX,tableX[Operation],tableX[ID]),
        tableX[date/time] <= EARLIER(tableX[date/time])
   ), 
   tableX[date/time],HOUR
)

capture

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找以下计算列:

Process Time (Hours) = DATEDIFF(
    CALCULATE(
        MAX('tableX'[Date/Time]),
        ALLEXCEPT(tableX,'tableX'[ID]),
        'tableX'[date/time] < EARLIER('tableX'[date/time])
   ), 
   'tableX'[Date/Time],HOUR
)

此表达式计算操作的上一步所经过的时间。如果要计算开始操作的经过时间,则只需将MAX('tableX'[Date/Time])更改为MIN('tableX'[Date/Time])。像这样:

enter image description here

要创建最后一列,可以使用以下内容:

Last Operation =
IF (
    'tableX'[Date/Time]
        = CALCULATE ( MAX ( 'tableX'[Date/Time] ), ALLEXCEPT ( 'tableX', tableX[ID] ) ),
    "Y",
    "N"
)