Filter Power Apps Galleries Instantly with Dropdowns
Have you ever built a Power Apps gallery and wished your users could quickly filter it by different columns? Maybe they want to see only “High” priority items, or filter by status, or even narrow down results by who created them. Good news – you can add dropdowns to filter Power Apps galleries without writing complex code!
In this post and video, I’ll walk you through several ways to add filter dropdowns to your Power Apps gallery. We’ll start simple and gradually build up to more complex scenarios, because the approach you’ll need depends on your column type and data source. I’ll show you how to handle static choices, choice columns, date ranges, and even create a slick filter panel that shows and hides on demand.
Let’s dive in! 🎉
📋 Understanding Data Table vs. Gallery
Before we get into filtering, let’s quickly talk about why we’re using a gallery control instead of a data table.
Power Apps offers a Data Table control that’s super simple – you just pick your columns and they show up. It even has built-in sorting! However, the data table is limited in what you can customize. You can’t really control how things look or add much functionality.
A Gallery control takes more time to build, but it’s way more configurable. You can customize every aspect of how your data displays, add buttons and icons, and – most importantly for today – add powerful filtering capabilities. If you have the time, I highly recommend using galleries for any real-world applications.
🎯 Method 1: Simple Typed-In Filter Values
Let’s start with the easiest approach. This works great when you have a choice column with just a few options that rarely change.
Step 1: Add a Combo Box to Your Screen
- With your gallery screen open in Power Apps, go to Insert and add a Combo Box (use the modern one).
- Position it above your gallery where you want the filter dropdown to appear.
- Rename your combo box something meaningful like cmbPriority (I like to prefix combo boxes with “cmb” so I can easily identify them later).
Step 2: Type In Your Items
For the Items property of your combo box, simply type in your choices using this syntax:
["*All*", "Normal", "High", "Critical"]
That’s it! Square brackets on the ends, quotes around each item, and commas between them. I’m including an “All” option with asterisks around it so users can reset the filter to show everything.

Step 3: Set the Default Value
Set the DefaultSelectedItems property to show “All” when the app loads:
["*All*"]
Step 4: Configure the Field Display
Click the Edit button on your combo box properties, then Add field and select Value. This tells the combo box which field to display from your items. Go ahead and also rename your combo box, I named mine cmbPriority.

Step 5: Add the Filter Function to Your Gallery
Next, go to your gallery’s Items property. This is where all the filtering happens. Wrap your data source in a Filter function:
Filter( 'Purchase Requests', Priority.Value = cmbPriority.Selected.Value || cmbPriority.Selected.Value = "*All*")
Here’s what this formula does:
- It filters your SharePoint list (or whatever your data source is)
- It shows items where the Priority column matches what’s selected in the combo box
- OR if “All” is selected, it shows everything (because the second condition will always be true when All is selected)
The double pipes (||) mean “or” – so the item shows if EITHER condition is true.
Step 6: Test Your Filter
Preview your app and try selecting different options from your dropdown. You should see the gallery instantly filter to show only matching items. Select “All” and everything comes back!
🔄 Method 2: Dynamic Choices from SharePoint
What if your choices might change? Maybe you’re pulling from a SharePoint choice column and you don’t want to manually update your Power App every time someone adds a new status option. Here’s how to make it dynamic.
Step 1: Get the Choices from SharePoint
Instead of typing in your items, you can pull them directly from SharePoint using this syntax:
Choices([@'Purchase Requests'].'Status'
This grabs whatever choices are defined in your SharePoint column. If someone adds a new status in SharePoint, it automatically appears in your dropdown. My little hack, to get this syntax, was to go to a combo box in the purchase request form control, go to the status combo box’s items property and just copy that.
Step 2: But Wait – We Need “All”!
Here’s the tricky part when you want to filter Power Apps galleries and need to see “all items”. When you just point to the Choices, there’s no “All” option. We need to create a collection that includes both our “All” option AND the dynamic choices.
Step 3: Create the Collection OnVisible
Go to your screen’s OnVisible property (this runs whenever someone navigates to the screen). Add this formula:
Clear(colStatuses);Collect(colStatuses, {Value: "*All*"});Collect(colStatuses, Choices([@'Purchase Requests'].'Status')
Here’s what’s happening:
- Clear(colStatuses) – Empties out the collection first (important so you don’t get duplicates if someone visits the screen multiple times)
- Collect(colStatuses, {Value: “*All*”}) – Adds a single row with the “All” option
- Collect(colStatuses, Choices([@’Purchase Requests’].’Status’) – Adds all the choices from SharePoint
An important insight here is that collections have column names. When you look at a collection from Choices, you’ll see it uses “Value” as the column name. That’s why we use {Value: "*All*"} – we’re matching that same structure.
Step 4: Point Your Combo Box to the Collection
Update your combo box’s Items property to this. Also rename the combo box cmbStatus.
colStatuses

Step 5: Update Your Gallery Filter
Add another condition to your gallery’s Items property for this new filter. If you already have the priority filter, add a comma and another filter condition:
Filter( 'Purchase Requests', (Priority.Value = cmbPriority.Selected.Value || cmbPriority.Selected.Value = "*All*"), (Status.Value = cmbStatus.Selected.Value || cmbStatus.Selected.Value = "*All*"))
Each filter condition is separated by a comma, and they ALL must be true for an item to show (it’s an AND relationship between conditions).
👤 Method 3: Filtering by People Columns
People columns are trickier because there isn’t a predefined list of choices – it could be anyone in your organization! Here’s one way to handle them.
Step 1: Understand the Challenge
With choice columns, SharePoint maintains a list of valid options. With people columns, the valid values are “everyone in your company.” We can’t just grab that list!
Instead, we’ll create a collection of distinct people who actually appear in our data.
Step 2: Create a Distinct Collection
On your screen’s OnVisible property, add:
Clear(colModifiedBy);Collect(colModifiedBy, {Value: "*All*"});Collect(colModifiedBy, Distinct('Purchase Requests', 'Modified By'.DisplayName))
The Distinct function looks at your list and returns only unique values from the specified column. So if Laura modified 50 items and Scott modified 10, you’ll just get “Laura Rogers” and “Scott Smith” once each in your collection.
Step 3: Watch Out for Delegation!
Here’s an important consideration to filter Power Apps galleries: if your list has thousands of items, Power Apps might not be able to process all of them to get distinct values. You’ll see a delegation warning.
The default data row limit is 500 items. You can increase it to 2000 in your app settings (Settings > General > Data row limit), but that’s the maximum. Going higher also slows down your app.
If delegation is a concern, consider filtering by what’s already displayed in the gallery, or require users to apply other filters first to reduce the data set.
Step 4: Set Up the Combo Box and Filter
Same as before – rename it, point your combo box to the collection and add the filter condition:
'Modified By'.DisplayName = cmbModifiedBy.Selected.Value || cmbModifiedBy.Selected.Value = "*All*"
Note: Notice we’re using DisplayName here because that’s what we collected with Distinct. Always match up what you collected with what you’re comparing!
📅 Method 4: Date Range Filtering
When deciding to filter Power Apps galleries, sometimes you want users to be able to filter by a date range – show me everything created between these two dates. Let’s add that!
Step 1: Add Two Date Pickers
Insert two Date Picker controls and name them something like dteStartFilter and dteEndFilter.

Step 2: Add the Date Filter to Your Gallery
Add this condition to your gallery’s Items property:
Created >= dteStartFilter.SelectedDate && Created <= dteEndFilter.SelectedDate
Step 3: Set Sensible Defaults
You probably don’t want users to have to pick dates before seeing any data. Set default values:
For the start date’s DefaultDate property:
Now() - 365
For the end date’s DefaultDate property:
Now()+1
Now your gallery will default to showing the last year’s worth of items, and users can adjust as needed.
Note: Something that I noticed in testing, is that when I set it to “Today”, it wasn’t showing any items from today because it seemed to count that as midnight at the beginning of today. Then, when I used “Now”, it counted that as now, as in right when the app opened, so it wasn’t showing new items as I added them. Then, I changed it to Now()+1 and it shows all of the data as I add new items.
Another interesting thing about the modern date picker control, is that you can set allowable date ranges that users can choose from. Here is my post about that: Specify Date Picker Ranges in Power Apps
🔒 Method 5: Auto-Filtering by Current User
What if you want to automatically limit what users see based on their identity? Maybe they should only see items they created, or items where they’re listed as the manager.
Step 1: Create a Current User Variable
In your app’s OnStart property (or use a named formula), add:
Set(CurrentUser, User())
Step 2: Add the User Filter
In your gallery’s Items property, add a condition that doesn’t have an “All” option – it always applies:
'Created By'.Email = currentUser.Email
This ensures users only ever see items they created, regardless of what other filters they select.
Step 3: Combine Multiple User Conditions
Maybe you want to show items where the user is EITHER the creator OR the manager:
'Created By'.Email = currentUser.Email || Manager.Email = currentUser.Email
Now users see items they created AND items where they’re listed as the manager.
🎨 Add on: Creating a Filter Panel
When you filter Power Apps galleries, once you have several filters, your screen can get cluttered. Let’s create a filter panel that shows and hides with a button click! Here’s one way to achieve that.
Step 1: Group Your Filter Controls
Add a rectangle. Select the rectangle and all of the filter-related controls (combo boxes, date pickers, labels) by holding Ctrl and clicking each one. Then in the tree view on the left, right-click and select Group.
(This is a bit ugly because I was creating it live during the demo (below) and was building as quickly as possible:)

Step 2: Add a Filter Button
Insert a Button control above your gallery. Set its Text to “Filter” and optionally add a filter icon (you’ll see in the video below, how it looks when toggling it).
Step 3: Create a Visibility Variable
On your filter button’s OnSelect property, add:
UpdateContext({ctxShowFilter: !ctxShowFilter})
This toggles the variable between true and false each time you click.
Step 4: Set the Group’s Visibility
Select your grouped filter controls and set the Visible property to:
ctxShowFilter
Since ctxShowFilter is a boolean (true/false), and Visible expects a boolean, you can just use the variable name directly. Also, in the OnVisible of the screen, set ctxShowFilter to false, so that it’s always hidden when you arrive on the screen.
Step 5: Add a Close Button
Inside your filter group, add a button with an X icon. Set its OnSelect to:
UpdateContext({ctxShowFilter: false})
Step 6: Add Reset Functionality
Want the close button to also reset all filters? Add Reset functions:
UpdateContext({ctxShowFilter: false});Reset(cmbPriority);Reset(cmbStatus);Reset(cmbModifiedBy);Reset(dteStartFilter);Reset(dteEndFilter)
Now when users close the filter panel, everything resets to default values!
🔍 Bonus: Adding a Search Box
While we’re at it, let’s add a search box to our filter panel!
Step 1: Add a Text Input
Insert a Text Input control and name it txtSearch. Set the PlaceholderText to something like “Search here…”.
Step 2: Wrap Everything in a Search Function
The Search function goes around your entire filter. Update your gallery’s Items property. In the search function, tell it which columns to search through. In this example, I set it to search through the title and budget code columns.
Search( Filter( 'Purchase Requests', Priority.Value = cmbPriority.Selected.Value || cmbPriority.Selected.Value = "*All*", Status.Value = cmbStatus.Selected.Value || cmbStatus.Selected.Value = "*All*", 'Created By'.Email = currentUser.Email || Manager.Email = currentUser.Email, Created > dteStartFilter.SelectedDate && Created < dteEndFilter.SelectedDate ), txtSearch.Value, Title, BudgetCode)
The Search function takes your filtered results and searches through the specified columns (Title and BudgetCode in this example) for whatever text the user typed.
Note: Search does a “contains” search, not “starts with,” so searching for “test” will find “Testing 123” and “My test item.”
✨ Filter Power Apps Galleries: Final Thoughts
Here are a few things to keep in mind as you filter Power Apps galleries:
Delegation matters. If your list might grow beyond 500 or 2000 items, be mindful of which functions are delegable. Filter with simple comparisons is usually fine, but Distinct and Search (depending on column types) can cause delegation issues with large lists.
Use meaningful control names. Prefixes like cmb (combo box), txt (text input), dte (date picker) make your formulas much easier to read and maintain.
Test with realistic data. A filter that works great with 10 items might behave differently with 1,000 items.
Consider your users. Do they really need to see everything if no filters are applied? Sometimes requiring at least one filter (like a date range) improves both performance and usability.
Try Copilot! Power Apps has a feature called comment-generated formulas. Just type a description of what you want (like “show date only”) and let Copilot suggest the formula. It’s built right in – no special license required.
Watch out for Performance Optimization. There is a setting called Disable performance optimization for hidden controls. Something I noticed was that when I closed my app and went to the filtering gallery screen again, the gallery appeared completely empty until I clicked the button to make the filter panel appear. This is because the app’s performance is being optimized. Since those filter combo boxes are hidden by default, the app doesn’t recognize them at all, so the gallery doesn’t show anything. Your options are either to toggle this setting to ON, or instead of hiding and showing the control with the Visible property, set Visible to true and just use the width property by setting it to zero width, to mimic the control being hidden.

If you want to adjust the width instead of visibility because of this setting, you’ll need to go to each control in the filter “panel” and look at what it’s current width is, and add logic like this. For example, if a control has a width of 310, my formula would be this. If the variable ctxShowFilter is true, the width is 310, otherwise it’s zero.
If( ctxShowFilter, 310, 0 )
I hope this tutorial helps you create more powerful and user-friendly Power Apps! Filtering galleries is one of those skills that takes your apps from “functional” to “professional,” and once you understand the patterns, you can adapt them to all sorts of scenarios.
Here is the associated video:
Happy Power App-ing! 💪
Here is my advanced Power Apps course, to learn more about Power Apps and get immersed!
Want to learn more about Power Apps and other Microsoft tools? Check out our training courses at IW Mentor and join us for Power Hour Wednesdays at 11am Central!