Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
5 years ago
Solved

Calculate running elapsed time for each record usingDAX Measure. Also Aggregate the same.

Hello,

Need some help with DAX measure to calculate running elapsed time in hours for each records since its created timestamp. 

The ask is two fold. 

* First one is when this measure is added to a table, it should show elapsed time in hours for each row as of Now.

* Second one is when this measure is added to a card visual, it should show average elapsed time in hours for all applicable rows as filtered.

Data Table:

The Elapsed Time calculation should be in hours "createdon - Now()" and should keep updating when the visual is updated using the current date/time (Now()).

If this same Measure is used in, lets say "Card Visual", it should show Average of elapsed time for all the records.

 

Appreciate any help on this.
  • [Avg Elapsed Time until Now] =
    AVERAGEX(
        T,
        var Created_ = T[Created On]
        var Now_ = NOW()
        var SecondsPerHour = 60 * 60
        RETURN
            DATEDIFF(SECOND, Created_, Now_) / SecondsPerHour
    )

    Something like this? If you want even greater precision, you could try to calculate using milliseconds... but I doubt you'd want to even go down to the seconds. Minutes would probably do as well.

2 Replies

  • [Avg Elapsed Time until Now] =
    AVERAGEX(
        T,
        var Created_ = T[Created On]
        var Now_ = NOW()
        var SecondsPerHour = 60 * 60
        RETURN
            DATEDIFF(SECOND, Created_, Now_) / SecondsPerHour
    )

    Something like this? If you want even greater precision, you could try to calculate using milliseconds... but I doubt you'd want to even go down to the seconds. Minutes would probably do as well.

    • Anonymous's avatar
      Anonymous
      Not applicable

      This works great for both of my scenarios. Thank you so much!