Power Apps  

How to Filtering a SharePoint Choice Column at the App Level

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)

    • Retrieves all available values from a SharePoint Choice column.

  • Filter(...)

    • Applies filtering logic to that list of choices.

  • !(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

  • Regular employees should NOT see:

    • Closed

    • Cancelled

  • IT Admins should see all statuses

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:

  • IT admins are stored in a SharePoint list called ITAdmins

  • That list has an Email column

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.