Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Need help on Time Line chart

I need to create a Line chart of average time per month. I have a table that has month and year in one column and in another column i have hour, minute and second H:MM:SS ie, 0:01:55 format. I need to create a line chart that will give average of time per month and the time in the line chart should show in the below format,

H:MM:SS ie, 0:01:55.

when i create a line chart i am getting count of Average time and i not able to change to Dont Summarise also. this option itself is not showing. 

Could anyone help me on this ?

I am new to power Bi, Step by step process of explanation will be much helpful.

Thanks in Advance 😀

  • Hi, Anonymous ;

    Unfortunately, that seems unlikely at the moment. The problem is that metrics that do not return integer or decimal values cannot be used as values in bar/line charts.

    The best thing you can do right now is to add metrics as a tooltip.

    So, given a metric [Duration in Seconds] that returns an integer or decimal value, create a new metric:

    1.change to seconds

    second = var _hour= CONVERT( LEFT(MAX('Table'[DateTime.2]), FIND(":",MAX('Table'[DateTime.2]),1)-1),INTEGER)
    var _min= MID( MAX('Table'[DateTime.2]), FIND(":",MAX('Table'[DateTime.2]),1)+1,2)
    var _sec= RIGHT(MAX('Table'[DateTime.2]),2)
    return _hour*3600+_min*60+_sec

    2.averge the seconds every month. then change it to hour.

    aver = AVERAGEX(FILTER(ALL('Table'),EOMONTH([DateTime.1],0)=EOMONTH(MAX('Table'[DateTime.1]),0)),[second]) /3600

    3.format it to hh:mm:ss as tooltip

    formatave = 
    INT([aver])
    &":"&INT(([aver]*3600-INT([aver])*3600)/60)
    &":"&FORMAT( INT( MOD([aver]*3600,60)),"00")

    The final output is shown below:


    Best Regards,
    Community Support Team_ Yalan Wu
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

2 Replies

  • v-yalanwu-msft's avatar
    v-yalanwu-msft
    Community Support

    Hi, Anonymous ;

    Unfortunately, that seems unlikely at the moment. The problem is that metrics that do not return integer or decimal values cannot be used as values in bar/line charts.

    The best thing you can do right now is to add metrics as a tooltip.

    So, given a metric [Duration in Seconds] that returns an integer or decimal value, create a new metric:

    1.change to seconds

    second = var _hour= CONVERT( LEFT(MAX('Table'[DateTime.2]), FIND(":",MAX('Table'[DateTime.2]),1)-1),INTEGER)
    var _min= MID( MAX('Table'[DateTime.2]), FIND(":",MAX('Table'[DateTime.2]),1)+1,2)
    var _sec= RIGHT(MAX('Table'[DateTime.2]),2)
    return _hour*3600+_min*60+_sec

    2.averge the seconds every month. then change it to hour.

    aver = AVERAGEX(FILTER(ALL('Table'),EOMONTH([DateTime.1],0)=EOMONTH(MAX('Table'[DateTime.1]),0)),[second]) /3600

    3.format it to hh:mm:ss as tooltip

    formatave = 
    INT([aver])
    &":"&INT(([aver]*3600-INT([aver])*3600)/60)
    &":"&FORMAT( INT( MOD([aver]*3600,60)),"00")

    The final output is shown below:


    Best Regards,
    Community Support Team_ Yalan Wu
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.