Forum Discussion
Time Stamp Analysis Visual
Hi everyone! I am doing an HR analysis on "average time workers log in by day of the week" and I need a visual of it as well. I tried converting the time stamp (HHMM) to numeric value but it just doesn't represent the desired time format on the visual. Below is the mockup I did on Excel. Would love to rPlease help! Thank you!
- Anonymous4 years ago
Hi Anonymous ,
To my knowledge, your requirement——Show Time format value for Y-axis could not be realized currently.
Ideas similar with what you expect have been submitted in the following links, please vote them up and you can add comments. Hopes Power Bi will implement this in nearby future.
dates and times on the y-axis of a graph
My workaround is Switch Time to Number type for Y-axis , and apply the Time format to Tooltips pane:
1. Add column: get total seconds
Time(Seconds) = HOUR([Time]) *3600 +MINUTE([Time])*60+SECOND([Time])2. Create a measure to get the average seconds, and then change to Time type
Avg Time format = var avgSec= CALCULATE(AVERAGE('Table'[Time(Seconds)]),ALLEXCEPT('Table','Table'[WeekDay])) var h=INT(avgSec/3600) var m=INT( (avgSec - h*3600) / 60) var s=avgSec- h*3600 -m*60 return TIME(h,m,s)Output:
Best Regards,
Eyelyn Qin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
2 Replies
- speedrampsSuper UserTime field only go upto 24hrs,So convert it to decimal is you need to do aggegationthen use this dax measure to display the answer as formated textTime HH:MM:SS =-- convert decimal duration to hh:mm:ss text eg converts 5.5 to "00:05:30" and convert 0 to 00:00
-- Take decimal minutes as input eg 5.5 minutes of a measure like SUM(youttable[duration])VAR DecimalMinutes = 5.5
-- Convert decimal minutes to secondsVAR Duration = DecimalMinutes * 60-- Calc the days, hours, minutes and seconds (add days if requiredVAR Hours = INT(DIVIDE(Duration,3600,0))VAR Minutes = INT(DIVIDE(MOD( Duration - ( Hours * 3600 ),3600),60,0))VAR Seconds = ROUNDUP(MOD ( MOD( Duration - ( Hours * 3600 ),3600 ), 60 ),0)-- Format hours, minutes and seconds to two decimalsVAR H = IF (LEN ( Hours ) = 1, CONCATENATE ( "0", Hours ), CONCATENATE ( "", Hours ))VAR M = IF (LEN ( Minutes ) = 1, CONCATENATE ( "0", Minutes ), CONCATENATE ( "", Minutes ))VAR S = IF (LEN ( Seconds ) = 1, CONCATENATE ( "0", Seconds ), CONCATENATE ( "", Seconds ))
RETURN-- if input is 0 return 00:00.-- return hours:mins:seconds as text-- handles any errors(unlikely)-- if inpout is greater than 24hrs then the hours will be displayedIFERROR(IF (DecimalMinutes>0,H & ":" & M & ":" & S,"0:00"),"Error")Thanks for reaching out for help.
I have helped you, now please help me by giving kudos.
Remeber we are unpaid volunteers.
Click the thumbs up and accept as solution button.
One question per ticket please. If you need to extend your request then please raise a new ticket.
You will get a quicker response and each volunteer solver will get the kudos they deserve. Thank you !
- AnonymousNot applicable
Hi Anonymous ,
To my knowledge, your requirement——Show Time format value for Y-axis could not be realized currently.
Ideas similar with what you expect have been submitted in the following links, please vote them up and you can add comments. Hopes Power Bi will implement this in nearby future.
dates and times on the y-axis of a graph
My workaround is Switch Time to Number type for Y-axis , and apply the Time format to Tooltips pane:
1. Add column: get total seconds
Time(Seconds) = HOUR([Time]) *3600 +MINUTE([Time])*60+SECOND([Time])2. Create a measure to get the average seconds, and then change to Time type
Avg Time format = var avgSec= CALCULATE(AVERAGE('Table'[Time(Seconds)]),ALLEXCEPT('Table','Table'[WeekDay])) var h=INT(avgSec/3600) var m=INT( (avgSec - h*3600) / 60) var s=avgSec- h*3600 -m*60 return TIME(h,m,s)Output:
Best Regards,
Eyelyn Qin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.