Introduction
In Power Apps connected to SharePoint, different users may need to see different options in a Choice column. Instead of modifying the SharePoint list, you can filter the Choices() function directly within the app. This approach maintains the data structure while providing flexible, role-based control over dropdown selections.
When this is useful
This is especially helpful when:
Your app supports multiple departments or roles
Certain choices should not be visible for specific users
You want to control available options at the app level without modifying the SharePoint list itself
If you'd like, I can also show you how to make this dynamic (e.g., filter choices based on the current user’s role or department).
“Filter a SharePoint Choices Column at the App Level!”
Below it is a Power Apps formula displayed prominently:
Filter(
Choices([@YourListName].YourChoiceField),
!(Value in ["Option1", "Option2", "Option3"])
)
Explanation of the Formula
The formula demonstrates how to filter out specific options from a SharePoint Choice column directly inside Power Apps rather than modifying the SharePoint list itself.
Breakdown:
Choices([@YourListName].YourChoiceField)
Filter(...)
!(Value in ["Option1", "Option2", "Option3"])
Excludes the specified options from appearing in the app.
The ! means “NOT”, so it removes those listed values.
Scenario: IT Helpdesk Ticket App
You have a SharePoint list called:
HelpdeskTickets
It contains a Choice column called:
Status
Available choices in SharePoint:
New
In Progress
Waiting on Customer
Resolved
Closed
Cancelled
Business Requirement
You do NOT want to modify the SharePoint column because other processes rely on it.
Step 1: Basic Role Check (Simple Version)
Let’s assume:
Step 2: Set Admin Variable (App OnStart)
In App → OnStart:
Set(
varIsAdmin,
!IsBlank(
LookUp(ITAdmins, Email = User().Email)
)
)
Then click Run OnStart.
Step 3: Filter the Status Dropdown
Set the Items property of your Status dropdown to:
If(
varIsAdmin,
Choices([@HelpdeskTickets].Status),
Filter(
Choices([@HelpdeskTickets].Status),
!(Value in ["Closed", "Cancelled"])
)
)
What Happens Now
Regular Employee
Sees:
New
In Progress
Waiting on Customer
Resolved
IT Admin
Sees:
New
In Progress
Waiting on Customer
Resolved
Closed
Cancelled
Why This Is Powerful
You didn’t change SharePoint.
You didn’t duplicate columns.
You didn’t create separate forms.
The logic lives entirely in Power Apps.
Even Cleaner Version (Role-Based Table)
Instead of excluding values, you could define allowed values per role:
Filter(
Choices([@HelpdeskTickets].Status),
Value in If(
varIsAdmin,
["New","In Progress","Waiting on Customer","Resolved","Closed","Cancelled"],
["New","In Progress","Waiting on Customer","Resolved"]
)
)
Conclusion
Filtering SharePoint Choice columns in Power Apps lets you control what users see without changing the list itself. It’s a simple, flexible way to create role-based or scenario-specific dropdowns while keeping your data intact.