I am trying to create automated rota for staff names to move every week

Ashraf Ali 0 Reputation points
2026-01-20T15:58:47.5366667+00:00

Hi. I am trying to create a rota which the names rotate every week. the job times stay the same.

User's image

Microsoft 365 and Office | Other
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. Deleted

    This answer has been deleted due to a violation of our Code of Conduct. The answer was manually reported or identified through automated detection before action was taken. Please refer to our Code of Conduct for more information.


    Comments have been turned off. Learn more

  2. Alex_T 6,005 Reputation points Microsoft External Staff Moderator
    2026-01-20T21:42:53.5233333+00:00

    Hello Ashraf Ali,

    Thank you for reaching out in Microsoft Q&A forum.

    I understand you want to set up an automated rota where staff names rotate weekly without changing the existing shift schedules.

    To do this, please follow these steps:

    Option 1: Rotate the Name list with one “Week Offset” cell

    Step 1: Put staff names in a single list

    Create a list of staff names in a column, e.g. on a sheet called Staff: Staff!A2:A12 = A, B, C, D… (your staff)

    Step 2: Add a “Week Offset” cell

    In a separate cell (example Control!B1), enter a number:

    • 0 = this week
    • 1 = rotate by 1 (next week)
    • 2 = rotate by 2 (week after) …etc.

    Step 3: Use this formula to display the rotated staff name per row

    In your rota sheet, in the first staff row (example A2), use:

    =INDEX(Staff!$A$2:$A$12, MOD(ROW()-ROW($A$2)+Control!$B$1, ROWS(Staff!$A$2:$A$12))+1)
    

    Then fill down.

    This automatically rotates names by however many weeks you set in Control!B1.

    Option 2 (If you have Excel 365): Use one spill formula

    If you have Microsoft 365, you can generate the full rotated list with one formula:

    =LET(n, Staff!A2:A12, k, Control!B1, DROP(VSTACK(DROP(n,k), TAKE(n,k)),0))
    
    
    

    This returns the entire rotated list at once (then your rota pulls from it).

    Once your Name column is dynamic, your shift grid (Sat–Fri) can remain exactly as it is (Day Off/COVER/times). Each week, you only change the Week Offset number and the names shift automatically.

    If you want the same “Day Off / Cover” colors, use Conditional Formatting rules by cell text or shift keywords.

    Let me know how it goes


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".  

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread. 


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.