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!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hi BI Community Team,
With screenshot below, we're looking for the time spent:
1. By session - early morning, morning, lunch, afternoon, evening & late evening.
2. Total time spent
sample file - https://drive.google.com/drive/folders/1EsiFHTEmDmDu4VJ1DCvXqjLPEf6ya_bk?usp=drive_link
Any suggestion/advise?
Thanks and Regards,
The number above is the time spent between the earliest log_in and the latest log_out which may not be what you are looking for. It looks like each row is a separate instance so we can calcualte the time in seconds for each row with a calculated column.
Time Spent Seconds = DATEDIFF(VISIT_SUMM[TIME_IN],VISIT_SUMM[TIME_OUT],SECOND)
Then a measure to sum the time in seconds.
Duration Seconds = SUM ( [Time Spent Seconds] )
Then the duration measure becomes this.
Time Spent =
VAR _Seconds = [Duration Seconds]
VAR _Minutes = INT ( DIVIDE ( _Seconds, 60 ) )
VAR _RemainingSeconds = MOD ( _Seconds, 60 )
VAR _Hours = INT ( DIVIDE ( _Minutes, 60 ) )
VAR _RemainingMinutes = MOD ( _Minutes, 60 )
RETURN
IF ( NOT ISBLANK ( _Seconds ),
SWITCH ( TRUE(),
_Seconds < 60, FORMAT ( _RemainingSeconds, "0" ),
_Seconds < 3600, FORMAT ( _RemainingMinutes, "0" ) & ":" &
FORMAT ( _RemainingSeconds, "00" ),
FORMAT ( _Hours, "#,#" ) & ":" &
FORMAT ( _RemainingMinutes, "00" ) & ":" &
FORMAT ( _RemainingSeconds, "00" )
)
)
One good thing about doing it this way is you can summarize it at whatever level you want and the amounts still sum:
In your visual, your End Time field should be looking at the Latest 'VISIT_SUMM'[Log_Out] I think.
Then a measure like this will give us the time format duration.
Time Spent =
VAR _Start = MIN ( VISIT_SUMM[TIME_IN] )
VAR _End = MAX ( VISIT_SUMM[TIME_OUT] )
VAR _Seconds = DATEDIFF ( _Start, _End, SECOND )
VAR _Minutes = INT ( DIVIDE ( _Seconds, 60 ) )
VAR _RemainingSeconds = MOD ( _Seconds, 60 )
VAR _Hours = INT ( DIVIDE ( _Minutes, 60 ) )
VAR _RemainingMinutes = MOD ( _Minutes, 60 )
RETURN
IF ( NOT ISBLANK ( _Seconds ),
SWITCH ( TRUE(),
_Seconds < 60, FORMAT ( _RemainingSeconds, "0" ),
_Seconds < 3600, FORMAT ( _RemainingMinutes, "0" ) & ":" &
FORMAT ( _RemainingSeconds, "00" ),
FORMAT ( _Hours, "#,#" ) & ":" &
FORMAT ( _RemainingMinutes, "00" ) & ":" &
FORMAT ( _RemainingSeconds, "00" )
)
)
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 38 | |
| 38 | |
| 37 | |
| 28 | |
| 28 |
| User | Count |
|---|---|
| 124 | |
| 89 | |
| 73 | |
| 66 | |
| 65 |