Forum Discussion

finn881988's avatar
finn881988
Frequent Visitor
4 years ago
Solved

[Solved] How to calculate time difference from one column based on various conditions

Goal:

Use dax to calculate average employee online time duration (Logout Timestamp - Login Timestamp)

Data:

Employee NoStatusTimestamp
1Login2020-1-1 12:00:00
1Inactive2020-1-1 13:00:00
1Active2020-1-1 14:00:00
1Logout2020-1-1 15:03:00
2....
2....

 

  • Hi,

    Please check the below picture and the attached pbix file.

    It is for creating a measure, and it shows by minute.

     

     

    Online time duration avg: = 
    VAR _duration =
        ADDCOLUMNS (
            VALUES ( Data[Employee No] ),
            "@duration",
                DATEDIFF (
                    CALCULATE ( MAXX ( FILTER ( Data, Data[Status] = "Login" ), Data[Timestamp] ) ),
                    CALCULATE ( MAXX ( FILTER ( Data, Data[Status] = "Logout" ), Data[Timestamp] ) ),
                    MINUTE
                )
        )
    RETURN
        AVERAGEX ( _duration, [@duration] )

     

     

2 Replies

  • Hi,

    Please check the below picture and the attached pbix file.

    It is for creating a measure, and it shows by minute.

     

     

    Online time duration avg: = 
    VAR _duration =
        ADDCOLUMNS (
            VALUES ( Data[Employee No] ),
            "@duration",
                DATEDIFF (
                    CALCULATE ( MAXX ( FILTER ( Data, Data[Status] = "Login" ), Data[Timestamp] ) ),
                    CALCULATE ( MAXX ( FILTER ( Data, Data[Status] = "Logout" ), Data[Timestamp] ) ),
                    MINUTE
                )
        )
    RETURN
        AVERAGEX ( _duration, [@duration] )