DAX: Найти время процесса и последнюю операцию по разнице даты / времени - PullRequest
0 голосов
/ 08 ноября 2018

Нужна ваша помощь, чтобы найти «Время процесса» в часах и где оно было в последней операции, основываясь на максимальном номере операции

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 голосов
/ 08 ноября 2018

Я думаю, что вы ищете следующий вычисленный столбец:

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"
)
...