How to Automatically Populate Excel Course Rosters from a Master Sheet
Question details
Create read-only course rosters that automatically pull specific columns and records from a master registration sheet based on course codes without exposing the full master data for editing.

- Product
- Excel
- Device & OS
- not provided
- Scenario
- Managing course registrations and sharing specific course rosters securely with staff.
- Observed behavior
- Staff need to view specific course data (like CM or NM course codes) across specific columns without having access to manually modify, sort, or delete records from the main master sheet.
Ensure your master registration sheet is fully updated and ideally formatted as an Excel Table for easier referencing. Identify the specific course codes (e.g., CM, NM) you want to filter for each roster sheet.
Use the FILTER Function and Protect the Master Sheet
Use Excel's dynamic FILTER function to pull specific data into separate roster sheets, then lock the master sheet to prevent accidental changes.
The FILTER function is ideal for extracting specific records from a master sheet into individual roster sheets based on criteria like course codes. By protecting the master sheet and the workbook structure, you ensure staff can view the necessary data on the rosters without altering the original registration records.
Add new worksheets for each course roster you need to generate (e.g., name them "Roster CM" and "Roster NM").
In the first cell of your new roster sheet where you want data to appear, type `=FILTER(MasterSheet!A:G, MasterSheet!C:C="CM", "No records found")`. Replace 'MasterSheet' and the column letters with your actual sheet name and column ranges containing the course codes.
Navigate back to your master registration sheet. Go to the "Review" tab on the ribbon and click "Protect Sheet". Enter a password to prevent users from manually sorting, deleting, or editing the raw data.
Still under the "Review" tab, click "Protect Workbook" and enter a password. This ensures staff cannot delete the read-only roster sheets or insert unauthorized new sheets.

Automate Course Rosters with WPS Spreadsheet
WPS Spreadsheet offers powerful dynamic array functions like FILTER, allowing you to seamlessly pull specific registration data into automated rosters while keeping your master file highly secure.
- 1. Open your master workbook: Launch WPS Spreadsheet and open the file containing your master registration data.
- 2. Create a new roster sheet: Click the '+' icon at the bottom to add a new sheet for the specific course roster.
- 3. Extract data using FILTER: Use the `=FILTER()` function in the new sheet to dynamically pull the relevant columns based on the desired course code.
- 4. Lock the data: Go to the Review tab, select Protect Sheet for your master data, and Protect Workbook to secure the file structure.

Frequently Asked Questions
Can I pull only non-adjacent columns using the FILTER function?
Yes. If you only need 7 specific non-adjacent columns from your master sheet, you can nest the FILTER function within the CHOOSECOLS function. For example: `=CHOOSECOLS(FILTER(Master!A:Z, Master!C:C="CM"), 1, 3, 5, 7, 8, 10, 12)`.
What happens if a staff member tries to sort the filtered roster sheet?
Because the roster data is generated by a dynamic spill formula from the master sheet, users cannot manually use the Sort & Filter buttons on the roster sheet directly. To present the roster in alphabetical order, you must wrap your FILTER formula inside a SORT function: `=SORT(FILTER(...), 1, 1)`.
How do I share just the roster without the master sheet attached?
The FILTER function requires the master data to exist within the same workbook to function. If you need to send only the roster to someone externally, highlight the filtered roster, copy it, paste it as "Values" into a brand-new workbook, and share that static file instead.




