Forum Discussion

DreDre's avatar
DreDre
Helper II
6 years ago
Solved

Line chart counting duration based on a start/End time

Long story short, I have start/end times in different rows and I am trying to create a line chart that gives a total number of people that fall between these two points so that I know how many people...
  • DataZoe's avatar
    6 years ago

    DreDre 

     

    Is this what you are going for:

     

     

     

     

     

    For this I would create a calculated table giving me each minute of the day:

     

    TimeTable =
    VAR HourTable =
        SELECTCOLUMNS ( GENERATESERIES ( ( 0 ), ( 23 ) ), "Hour", [Value] )
    VAR MinuteTable =
        SELECTCOLUMNS ( GENERATESERIES ( ( 0 ), ( 59 ) ), "Minute", [Value] )
    RETURN
        ADDCOLUMNS (
            CROSSJOIN ( HourTable, MinuteTable ),
            "Time", TIME ( [Hour], [Minute], 0 )
        )

     

    (modified from here: https://kohera.be/blog/power-bi/how-to-create-a-time-table-in-power-bi-in-a-few-simple-steps/ )

     

    That would be the x-axis and I wouldn't create a relationship to this table!

     

    I would then create a measure to count how many people are working at each time, like this:

     

    Active Workers =
    CALCULATE (
        DISTINCTCOUNT ( Hours[Person] ),
        FILTER (
            Hours,
            Hours[Start] <= MIN ( TimeTable[Time] )
                && Hours[End] > MAX ( TimeTable[Time] )
        )
    )

     

     

    and then put it on the line chart.

     

    Edit: Also make sure all the time fields are in the "Time" datetype.