# Filtering table rows based on multi-choice dropdown values

**URL:** <https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053>\
**Category:** Ask for Help\
**Created:** [May 26, 2025, 10:25am UTC](https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053 "2025-05-26T10:25:40Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ramya\_Venkatesh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ramya_venkatesh/32/88271_2.png) [@Ramya\_Venkatesh](https://community.glideapps.com/u/Ramya_Venkatesh)\
**Post date:** [May 26, 2025, 10:25am UTC](https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053/1 "2025-05-26T10:25:40Z")

</div>

Hello,

I’m trying to build a search interface for my data. I want the users to be able to filter data based on different criteria. I have an Athletes table with some columns like Programme, State, Sport etc. I’ve created a page for search as shown in screenshot. When I select multiple values in the dropdown, I want all rows matching both the values to show up. But it’s showing no results. I guess it’s because the column entry does not match exactly due to multiple options selected. I’m not sure how to fix this though. Then, I want to extend the search to the other dropdowns as well. Basically, I want the search to behave exactly like Google Sheets’ filtering on multiple values.

 ![Screenshot 2025-05-26 at 3.51.37 PM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/9/c/9cc8266b23d9b318f4049e0d2203f687ca1d6d9a.jpeg)

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [May 26, 2025, 10:31am UTC](https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053/2 "2025-05-26T10:31:33Z")

</div>

Use a Split Text column to convert the list into an array, and then use that in the filter.

---

<div class="post-metadata">

**Author:** ![Ramya\_Venkatesh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ramya_venkatesh/32/88271_2.png) [@Ramya\_Venkatesh](https://community.glideapps.com/u/Ramya_Venkatesh)\
**Post date:** [May 26, 2025, 10:52am UTC](https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053/3 "2025-05-26T10:52:54Z")

</div>

Hi Darren,

Thank you for your response. That’s one step closer to what I’m looking for. I was saving the user filtered options in a different table called ‘Search Helper’ table with user specific columns. The filter condition for the list view was comparing source column value with the screen values. But the source for the list is coming from a different table. Are you suggesting I add the split text column to the source table itself?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [May 26, 2025, 11:19am UTC](https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053/4 "2025-05-26T11:19:37Z")

</div>

No, add it to your Helper Table.

---

<div class="post-metadata">

**Author:** ![Ramya\_Venkatesh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ramya_venkatesh/32/88271_2.png) [@Ramya\_Venkatesh](https://community.glideapps.com/u/Ramya_Venkatesh)\
**Post date:** [May 26, 2025, 11:24am UTC](https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053/5 "2025-05-26T11:24:42Z")

</div>

The Helper Table values are not available to filter on. All values are from the source table. Attaching screenshot.

 ![Screenshot 2025-05-26 at 4.53.36 PM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/7/8/7831ce11ad51102bb6b8004be851cb6dec0c02fa.png)

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [May 26, 2025, 11:40am UTC](https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053/6 "2025-05-26T11:40:43Z")

</div>

Okay, so you have two options:

- Use Single Value columns to pull the filter values into your data table
- Write the filter values to your User Profile row instead, and then they can be accessed directly from anywhere.

---

<div class="post-metadata">

**Author:** ![Ramya\_Venkatesh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ramya_venkatesh/32/88271_2.png) [@Ramya\_Venkatesh](https://community.glideapps.com/u/Ramya_Venkatesh)\
**Post date:** [May 26, 2025, 1:08pm UTC](https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053/7 "2025-05-26T13:08:29Z")

</div>

I tried having a split text column in the user profile row itself, but these columns are not showing up in the filter dropdown. Any idea why?

 ![Screenshot 2025-05-26 at 6.36.58 PM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/7/4/749f185daccaae24c5544f6e3fd5e036d2a7c021.png)  
 ![Screenshot 2025-05-26 at 6.37.33 PM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/d/c/dc3d88b001bee1e442041315aaf6e3ca4f5abbe9.png)

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [May 26, 2025, 2:10pm UTC](https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053/8 "2025-05-26T14:10:59Z")

</div>

mmm, my bad sorry. I forgot that User Profile arrays cannot be referenced on the left hand side of a filter.

What you _can_ do, however, is move the filtering logic to the Data Editor, where you can reference them in an if-then-else column.

So in your Data Table, you could have something like:

- If User Profile-\>[Search] Programme Filter doesn’t contain Programme, then `null` (leave empty)
- If User Profile-\>[Search] Sport Filter doesn’t contain Sport, then `null`
- Else `true`

And then on your filtered Collection, refer to that if-then-else column, only showing rows where it is checked.

I actually prefer this approach myself, especially if you need similar filter conditions on multiple components.

---

<div class="post-metadata">

**Author:** ![Ramya\_Venkatesh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ramya_venkatesh/32/88271_2.png) [@Ramya\_Venkatesh](https://community.glideapps.com/u/Ramya_Venkatesh)\
**Post date:** [May 27, 2025, 8:34am UTC](https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053/9 "2025-05-27T08:34:44Z")

</div>

This works as long as something is selected in each dropdown. But I also want to allow users to not select anything in the dropdown which is an equivalent of ALL for that dropdown. This seems more complicated than I expected with If Else conditions here. I tried having an ‘is empty’ condition but once there is a true condition, the rest of the checks don’t happen.

 ![Screenshot 2025-05-27 at 2.03.51 PM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/e/2/e2680ab7a004a2e378df730e7db41df73c751ede.png)

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [May 27, 2025, 8:50am UTC](https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053/10 "2025-05-27T08:50:11Z")

</div>

Yes, that is a little more complicated.  
The way I normally do it is with multiple if-then-else columns, one for each filter, and then a final if-then-else column that ties them all together.

The technique is demonstrated in the below video:

[![](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/4/8/48b6a0665d25c2cfc83a85a933aef363eadf12e4.jpeg "Custom Filters using Data Editor logic") ](https://www.youtube.com/watch?v=jgMb5HsENEM)

---

<div class="post-metadata">

**Author:** ![Ramya\_Venkatesh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ramya_venkatesh/32/88271_2.png) [@Ramya\_Venkatesh](https://community.glideapps.com/u/Ramya_Venkatesh)\
**Post date:** [May 28, 2025, 12:19pm UTC](https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053/11 "2025-05-28T12:19:23Z")

</div>

Thank you, Darren. It is tedious, but it solves the problem. The video link was very useful! I’m also building some charts, so will be taking some tips from there 🙂

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/system/32/53398_2.png) [@system](https://community.glideapps.com/u/system)\
**Post date:** [June 4, 2025, 12:19pm UTC](https://community.glideapps.com/t/filtering-table-rows-based-on-multi-choice-dropdown-values/82053/12 "2025-06-04T12:19:47Z")

</div>

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
