Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!
Hello, I have looked through the forums but am not quite finding my situation...
I have the sample table below, which tracks multiple IDs moving through various statuses in a process. I would like to create a calculated column (TOTAL_TIME_IN_STATUS) which is the far right column below. I have populated a few expected results on the two sets of IDs. This is based on the next ID update record's timestamp.
I might also want the option to either show total minutes or total hours for each status record. Any help is greatly appreciated!
| ID | TIME_STAMP | STATUS | TOTAL_TIME_IN_STATUS (minutes) |
| INPR0006238-1 | 10/28/2025 17:02 | DISC_INITIATION | 32 |
| INPR0006238-1 | 10/28/2025 17:34 | DISC_QE | |
| INPR0006238-1 | 10/29/2025 6:36 | MRB_T1 | |
| INPR0006238-1 | 10/29/2025 6:36 | DISC_QE | |
| INPR0006238-1 | 10/29/2025 10:31 | DISC_QE | |
| INPR0006238-1 | 10/29/2025 10:31 | MRB_T1 | |
| INPR0006238-1 | 10/29/2025 10:38 | DISC_INITIATION | |
| INPR0006238-1 | 10/29/2025 10:38 | DISC_QE | |
| INPR0006238-1 | 10/29/2025 11:01 | DISC_QE | |
| INPR0006238-1 | 10/29/2025 11:01 | DISC_INITIATION | |
| INPR0006238-1 | 10/29/2025 12:42 | MRB_T1 | |
| INPR0006238-1 | 10/29/2025 12:42 | DISC_QE | |
| INPR0006073-4 | 1/6/2026 15:02 | DISC_QE | 2 |
| INPR0006073-4 | 1/6/2026 15:04 | DISC_INITIATION | 0 |
| INPR0006073-4 | 1/6/2026 15:04 | DISC_QE | 104 |
| INPR0006073-4 | 1/8/2026 16:58 | DISC_QE | |
| INPR0006073-4 | 1/8/2026 16:58 | DISC_INITIATION | |
| INPR0006073-4 | 1/9/2026 8:10 | MRB_T1 | |
| INPR0006073-4 | 1/9/2026 8:10 | DISC_QE | |
| INPR0006073-4 | 1/15/2026 7:18 | DISC_QE | |
| INPR0006073-4 | 1/15/2026 7:18 | MRB_T1 | |
| INPR0006073-4 | 1/15/2026 7:53 | DISC_INITIATION | |
| INPR0006073-4 | 1/15/2026 7:53 | DISC_QE | |
| INPR0006073-4 | 1/15/2026 8:02 | DISC_QE | |
| INPR0006073-4 | 1/15/2026 8:02 | DISC_INITIATION | |
| INPR0006073-4 | 1/15/2026 8:47 | MRB_T1 | |
| INPR0006073-4 | 1/15/2026 8:47 | DISC_QE | |
| INPR0006073-4 | 1/19/2026 10:21 | MRB_STRESS | |
| INPR0006073-4 | 1/19/2026 10:21 | MRB_T1 | |
| INPR0006238-1 | 1/19/2026 10:22 | MRB_T1 | |
| INPR0006238-1 | 1/19/2026 10:22 | MRB_STRESS | |
| INPR0006073-4 | 1/19/2026 11:57 | MRB_T2 | |
| INPR0006073-4 | 1/19/2026 11:57 | MRB_STRESS | |
| INPR0006073-4 | 1/19/2026 12:02 | CR | |
| INPR0006073-4 | 1/19/2026 12:02 | MRB_T2 | |
| INPR0006238-1 | 1/19/2026 12:25 | MRB_T2 | |
| INPR0006238-1 | 1/19/2026 12:25 | MRB_STRESS | |
| INPR0006238-1 | 1/19/2026 12:38 | CR | |
| INPR0006238-1 | 1/19/2026 12:38 | MRB_T2 |
Solved! Go to Solution.
hi @data_guy_87 ,
Try like:
1) add a index column in Power Query. There are duplicate timestamps, otherwise we could rely on timestamp column to locate next rows.
How: https://learn.microsoft.com/en-us/power-query/add-index-column
2) add a calculated column like:
Minutes =
VAR _id = data[ID]
VAR _index = data[Index]
VAR _time = data[TIME_STAMP]
VAR _next =
MINX(
FILTER(
data,
data[ID]=_id
&&data[Index]>_index
),
data[TIME_STAMP]
)
VAR _result = DATEDIFF(_time, _next, MINUTE)
RETURN _result
it works like:
hi @data_guy_87 ,
Try like:
1) add a index column in Power Query. There are duplicate timestamps, otherwise we could rely on timestamp column to locate next rows.
How: https://learn.microsoft.com/en-us/power-query/add-index-column
2) add a calculated column like:
Minutes =
VAR _id = data[ID]
VAR _index = data[Index]
VAR _time = data[TIME_STAMP]
VAR _next =
MINX(
FILTER(
data,
data[ID]=_id
&&data[Index]>_index
),
data[TIME_STAMP]
)
VAR _result = DATEDIFF(_time, _next, MINUTE)
RETURN _result
it works like:
Vote for your favorite vizzies from the Power BI World Championship submissions!
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 7 | |
| 5 | |
| 3 | |
| 3 | |
| 3 |
| User | Count |
|---|---|
| 17 | |
| 13 | |
| 8 | |
| 4 | |
| 4 |