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!Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!
Hi all, I have a problem I'm trying to solve. I need to create a custom roster calendar based on the following schedule;
- 8 day shifts
- 6 days off (RR)
- 7 night shifts
- 7 days off (RR)
Then the roster is repeated.
I have 4 crews who are all on a different parts of the cycle.
Below is what the calendar should look like over a few weeks.
| Date | Shift A | Shift B | Shift C | Shift D |
| 19/03/2020 | D | N | D | RR |
| 20/03/2020 | D | N | RR | RR |
| 21/03/2020 | D | N | RR | RR |
| 22/03/2020 | D | N | RR | RR |
| 23/03/2020 | D | N | RR | RR |
| 24/03/2020 | D | N | RR | RR |
| 25/03/2020 | D | N | RR | RR |
| 26/03/2020 | D | RR | N | D |
| 27/03/2020 | RR | RR | N | D |
| 28/03/2020 | RR | RR | N | D |
| 29/03/2020 | RR | RR | N | D |
| 30/03/2020 | RR | RR | N | D |
| 31/03/2020 | RR | RR | N | D |
| 1/04/2020 | RR | RR | N | D |
| 2/04/2020 | N | D | RR | D |
| 3/04/2020 | N | D | RR | RR |
| 4/04/2020 | N | D | RR | RR |
| 5/04/2020 | N | D | RR | RR |
| 6/04/2020 | N | D | RR | RR |
| 7/04/2020 | N | D | RR | RR |
| 8/04/2020 | N | D | RR | RR |
| 9/04/2020 | RR | D | D | N |
| 10/04/2020 | RR | RR | D | N |
| 11/04/2020 | RR | RR | D | N |
| 12/04/2020 | RR | RR | D | N |
| 13/04/2020 | RR | RR | D | N |
| 14/04/2020 | RR | RR | D | N |
| 15/04/2020 | RR | RR | D | N |
Any help would be greatly appreciated!
Solved! Go to Solution.
Good morning,
I suggest you the following approach:
1 you create a date column for the period you want
2 you add a index column to the date table. In your example 3/19/2020 will be 1... 3/18/2021 will have 365
3 add a custom column to create an increment of 28: if [Index] < 28 then [Index] else if [Index] - (28 * (Number.IntegerDivide([Index], 28))) = 0 then 28 else [Index] - (28 * (Number.IntegerDivide([Index], 28)))
4 create different shift sequences with 2 columns: colum 1 is index from 1 to 28, 2nd column description of the shift: "D", "RR", N"
5 Realise a full join on Date and Shift table based on Index column.
Did it answer your question? Please mark my post as solution
Did you like the answer? Please add a kudo.
Good luck and keep up the good job.
Kind regards,
Lohic Beneyzet
Good morning,
I suggest you the following approach:
1 you create a date column for the period you want
2 you add a index column to the date table. In your example 3/19/2020 will be 1... 3/18/2021 will have 365
3 add a custom column to create an increment of 28: if [Index] < 28 then [Index] else if [Index] - (28 * (Number.IntegerDivide([Index], 28))) = 0 then 28 else [Index] - (28 * (Number.IntegerDivide([Index], 28)))
4 create different shift sequences with 2 columns: colum 1 is index from 1 to 28, 2nd column description of the shift: "D", "RR", N"
5 Realise a full join on Date and Shift table based on Index column.
Did it answer your question? Please mark my post as solution
Did you like the answer? Please add a kudo.
Good luck and keep up the good job.
Kind regards,
Lohic Beneyzet
Vote for your favorite vizzies from the Power BI World Championship submissions!
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 7 | |
| 5 | |
| 4 | |
| 3 | |
| 3 |
| User | Count |
|---|---|
| 14 | |
| 14 | |
| 12 | |
| 7 | |
| 6 |