cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
marcy_pi
Helper II
Helper II

Filter gallery with dropdown boxes using collections

Hello,

 

I have 3 dropdown boxes that are filtering my gallery. Each of dropdown box is using collection of elements from the gallery (data source is excel). I could filter through All parts and distinct parts on 1st one, all months and distinct months on 2nd one and on 3rd one I wanted to filter through: All, value above 50 and value below 50. How do I do that, please? 

This is my code on screen: (OnVisible)

ClearCollect(colPartNumberP, {Result:"All"}, Distinct(Table5, 'PART NUMBER'));
ClearCollect(colMonthP, {Result:"All"}, Distinct(Table5, month));
ClearCollect(colValueP, {Result:"All"}, {Result:"Above £50"}, {Result:"Below £50"})

 

This is my code on dropdown boxes: 

colPartNumberP

colMonthP

colValueP

 

This is my code on gallery: 

If(
Dropdown_Part_P.Selected.Result = "All" && Dropdown_Month_P.Selected.Result = "All" && Dropdown_Value_P.Selected.Result = "All",
Table5,
If(
Dropdown_Part_P.Selected.Result <> "All" && Dropdown_Month_P.Selected.Result = "All" && Dropdown_Value_P.Selected.Result = "All",
Filter( Table5, 'PART NUMBER' = Dropdown_Part_P.Selected.Result ),
If(
Dropdown_Part_P.Selected.Result <> "All" && Dropdown_Month_P.Selected.Result <> "All" && Dropdown_Value_P.Selected.Result = "All",
Filter( Table5, 'PART NUMBER' = Dropdown_Part_P.Selected.Result && month = Dropdown_Month_P.Selected.Result),
Filter( Table5, month = Dropdown_Month_P.Selected.Result )
)
)
)

 

All collections are working fine except of collection for value as nothing is assigned to these and in gallery I have not included them as I am not sure how to filter them.

 

Regards 

1 ACCEPTED SOLUTION

Accepted Solutions

@marcy_pi ,

I cannot test it but it should work - I was trying to keep it Delegable with that structure. There is a "long way" that will work, but the top filter needs to return less than your Delegation limit to get the full results

With(
   {
      wList:
      Filter(
         Table5,
         (
            Dropdown_Part_P.Selected.Result = "All" ||
            'PART NUMBER' = Dropdown_Part_P.Selected.Result
         ) &&
         (   
            Dropdown_Month_P.Selected.Result = "All" ||
            month = Dropdown_Month_P.Selected.Result
         ) 
      )
   },
   If(
      Dropdown_Value_P.Selected.Result = "All",
      wList,
      Filter(
         wList,
         If(
            Dropdown_Value_P.Selected.Result = "Above £50",
            ValueField >= 50,
            ValueField < 50      
         )
      )
   )
)   

 

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

Visit my blog Practical Power Apps

View solution in original post

4 REPLIES 4
WarrenBelz
Super User
Super User

Hi @marcy_pi ,

You asked this question in part on another post - try this

Filter(
   Table5,
   (
      Dropdown_Part_P.Selected.Result = "All" ||
      'PART NUMBER' = Dropdown_Part_P.Selected.Result
   ) &&
   (   
      Dropdown_Month_P.Selected.Result = "All" ||
      month = Dropdown_Month_P.Selected.Result
   ) &&
   (
      Dropdown_Value_P.Selected.Result = "All" ||
      (
         (
            Dropdown_Value_P.Selected.Result = "Above £50" && 
            ValueField >= 50
         ) ||
         ValueField < 50      
      )
   )
)   

 

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

Visit my blog Practical Power Apps

 

marcy_pi
Helper II
Helper II

Thank You,

 

It is working for option "All" and for "Below £50" but when I press on "Above £50" it is showing me all records not only above the value. Do You know why?

@marcy_pi ,

I cannot test it but it should work - I was trying to keep it Delegable with that structure. There is a "long way" that will work, but the top filter needs to return less than your Delegation limit to get the full results

With(
   {
      wList:
      Filter(
         Table5,
         (
            Dropdown_Part_P.Selected.Result = "All" ||
            'PART NUMBER' = Dropdown_Part_P.Selected.Result
         ) &&
         (   
            Dropdown_Month_P.Selected.Result = "All" ||
            month = Dropdown_Month_P.Selected.Result
         ) 
      )
   },
   If(
      Dropdown_Value_P.Selected.Result = "All",
      wList,
      Filter(
         wList,
         If(
            Dropdown_Value_P.Selected.Result = "Above £50",
            ValueField >= 50,
            ValueField < 50      
         )
      )
   )
)   

 

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

Visit my blog Practical Power Apps

marcy_pi
Helper II
Helper II

You're genius! 😄 Thanks!

Helpful resources

Announcements
Super User 2 - 2022 Congratulations 768x460.png

Welcome Super Users

The Super User program for 2022 - Season 2 has kicked off!

Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

<
Users online (5,774)