How to Protect an Excel Sheet with Different Permissions for User Groups
Question details
Setting up a protected spreadsheet where one user group has unrestricted editing access, while another group can view and sort locked cells.

- Product
- Excel
- Device & OS
- not provided
- Scenario
- A user needs to grant different levels of interaction (editing vs. sorting/filtering) to different user groups within the same dataset.
- Observed behavior
- Excel natively prevents users from sorting ranges that contain locked cells on a protected worksheet, even if the 'Sort' option is explicitly enabled in the protection settings.
Identify exactly which users belong to the editing group and which belong to the view-only group, and ensure you are using a spreadsheet version that supports dynamic array formulas like SORT and FILTER.
Implement a Two-Sheet Design Using Dynamic Formulas
Since Excel prevents sorting locked cells on a single protected sheet, you can build a secondary viewing sheet with unlocked control cells and dynamic array formulas.
Excel fundamentally restricts users from sorting ranges that contain locked cells on a protected worksheet. The 'Sort' permission only works if the cells being sorted are unlocked.
To bypass this limitation, you must separate the data entry environment from the data analysis environment by utilizing two distinct worksheets linked by formulas.
Keep your raw data on the primary sheet. Leave this sheet unprotected or restricted only to the editing group (Group A) so they have full access to modify the records.
Add a new worksheet dedicated to the restricted user group (Group B). This will act as their interactive dashboard.
On the secondary sheet, designate specific cells to act as controls for sort direction and filter values. Right-click these cells, select 'Format Cells', go to the 'Protection' tab, and uncheck 'Locked'.
Use the SORT and FILTER functions on the secondary sheet to pull data from the primary sheet. Reference your unlocked control cells within these formulas so the data updates dynamically when users change the criteria.
Navigate to the 'Review' tab and click 'Protect Sheet'. Ensure 'Select unlocked cells' is checked but keep 'Select locked cells' disabled. Now Group B can sort and filter via the unlocked control cells without altering the protected source data.

Manage Sheet Permissions Effectively with WPS Spreadsheet
WPS Spreadsheet offers robust worksheet protection features and fully supports dynamic array formulas like SORT and FILTER, making it easy to set up advanced multi-sheet permission structures.
- 1. Open your workbook: Launch WPS Spreadsheet and open your data workbook.
- 2. Isolate the raw data: Keep your primary dataset on 'Sheet1' for unrestricted editing by your designated editors.
- 3. Build the dynamic dashboard: Create 'Sheet2', format specific cells as unlocked drop-downs for sorting criteria, and use `=SORT(Sheet1!A1:D100, ...)` to dynamically display the data.
- 4. Apply sheet protection: Go to the 'Review' tab, click 'Protect Sheet', and assign a password while ensuring 'Select unlocked cells' is allowed.

Frequently Asked Questions
Why can't I sort locked cells on a protected sheet even if 'Sort' is checked?
Excel's protection architecture fundamentally prevents the rearrangement of locked cells to maintain data integrity. The 'Sort' permission in the Protect Sheet dialog only applies if the specific cells within the range being sorted are unlocked.
Can I allow specific users to edit ranges using passwords without creating a second sheet?
Yes, you can use the 'Allow Users to Edit Ranges' feature under the Review tab to set different passwords for different cell blocks. However, this feature alone will not solve the structural issue of sorting locked cells for a view-only group.
Are the SORT and FILTER functions available in older spreadsheet versions?
No, SORT and FILTER are dynamic array functions introduced in newer versions of Excel (like Microsoft 365 and Excel 2021) and recent updates of WPS Office. Older versions would require complex INDEX/MATCH arrays or VBA macros to achieve a similar result.




