Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago

Creating a shift model

I analyse user numbers, and I would like to divide the work day into early (6 am- 2 pm),  late (2 pm- 10 pm) and night shifts (10 pm- 6 am). Creating the night shift is no problem because it runs every weekday from 10pm - 6 am. IIt is difficult for me to create the early and late shift, because they change every week. In calendar week 48 group A has the early shift (6 am- 14 pm) and group B the late shift (2 pm- 10 pm). In calendar week 49 group B has the early shift and group A the late shift and so on.

I would be very grateful for helpful tips!

2 Replies

  • Greg_Deckler's avatar
    Greg_Deckler
    Community Champion

    Please see this post regarding How to Get Your Question Answered Quickly: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

     

    Hard to be specific without source data. But, if you created an hours table like this:

     

    R06_Table = 
    VAR __Hours = 
            SELECTCOLUMNS(
                GENERATESERIES(1 , 12 , 1),
                "Hour",
                [Value] & ":00:00 "
            )
    VAR __Period = 
        SELECTCOLUMNS(
            { ("AM"),("PM") },
            "AM/PM",
            [Value]
        )
    VAR __HoursAMPM = GENERATEALL(__Hours, __Period)
    VAR __Final = 
        SELECTCOLUMNS(
            ADDCOLUMNS(
                __HoursAMPM,
                "Time",
                TIMEVALUE([Hour] & [AM/PM])
            ),
            "Time",
            CONVERT(TODAY() & " " & [Time], DATETIME)
        )
    RETURN
        __Final

     

    You could create a Shift column like this:

     

    Shift = 
    VAR __1stBegin = 9
    VAR __2ndBegin = 17
    VAR __3rdBegin = 1
    VAR __Time = TIMEVALUE('R06_Table'[Time])
    VAR __Hour = HOUR(__Time)
    RETURN
    SWITCH(TRUE(),
        __Hour >= __1stBegin && __Hour < __2ndBegin,"First",
        __Hour >= __2ndBegin || __Hour < __3rdBegin,"Second",
        "Third"
    )

     

     

     

     

  • Anonymous's avatar
    Anonymous
    Not applicable

    My Data looks like this (each row is a user):Data

     

    My Conditional Column looks like this:

    Code

     

    This is ok but I need to adjust the weekly change from the early and late shift group.