cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
OsmandFernando
Post Prodigy
Post Prodigy

Further advance filtering on Charts

Dear @PowerAddict 

 

Based on your and others wonderful support I made the following, 

 

  1. Collection to find sales by location
  2. Collection to summarize the sales by location
  3. Chart to show the summary sales by location 

Capture.PNG

 

I want the location chart to filter based on the Year selection in the dropdown. In the location summary the SalesYear column has under the group. I tried following way but did not work

 

If(Dropdown2_1.Selected.Value="All",SalesSumbyLocation,Filter(SalesSumbyLocation, Grouped.SalesYear = Text(Dropdown2_1.Selected.Value)))
 
It says under the = sign invalid argument type 
 
Annotation 2019-11-30 055714.jpg

 

Kindly help

 

Osmand

1 ACCEPTED SOLUTION

Accepted Solutions

Ok, right, now I see, this is because you have multiple rows in each Grouped.SalesYear, so it's a list of entries rather than one item, so we can't compare a box of Apples with an Apple (if that makes sense?)

 

Could you try these two different formulae? I'm not actually 100% sure these will work, as I think the issue is that it's not able to compare multiple sub-items to a singular parent item.

 

If(
   Dropdown2_1.Selected.Value="All",
      SalesSumbyLocation,
   Filter(SalesSumbyLocationDropdown2_1.Selected.Value in Text(Grouped.SalesYear.Value, "YYYY"))
)

 

If(
   Dropdown2_1.Selected.Value="All",
      SalesSumbyLocation,
   Filter(SalesSumbyLocation, Text(Grouped.SalesYear.Value, "YYYY") = Dropdown2_1.Selected.Value)
)

 

 

Another way of solving this would be to create a new collection, which has the parent (SalesBySumLocation) ID as a new column maybe called RowID, and the contents of Grouped.SalesYear, using AddColumns and ClearCollect, and then filtering That to then show only those items where the Year matches, then comparing your original to this filtered list where the ID's and RowID's match.

@iAm_ManCat


Please 'Mark as Solution' if someone's post answered your question and always 'Thumbs Up' the posts you like or that helped you!


Thanks!
You and everyone else in the community make it the awesome and welcoming place it is, keep your questions coming and make sure to 'like' anything that makes you 'Appy
Sancho Harker, MVP


View solution in original post

20 REPLIES 20
PowerAddict
Super User II
Super User II

What happens when you try without the Text function?

---
If you like this reply, please give kudos. And if this solves your problem, please accept this reply as the solution. Thanks!

Hardit Bhatia
https://thepoweraddict.com

@PowerAddict  same error brother, invalid argument type 

Ok. Two questions:

1. Show me your SalesSumByLocation collection by going to View->Collections

2. Show me the items property of Dropdown2_1

Thanks,
Hardit

@PowerAddict 

 

There you go

 

1. 

Capture.PNGCapture1.PNG

 

2.  Item property set as 

["All","2019","2020"]

Ok so the problem is that your year numbers are in decimal format. You need to first change them to numbers without decimals.

Try something like:

Left(Find(Grouped.SalesYear), ".") instead of Grouped.Sales in your filter expression.

Let me know if this helps.

---
If you like this reply, please give kudos. And if this solves your problem, please accept this reply as the solution. Thanks!

Hardit Bhatia
https://thepoweraddict.com

Thank you @PowerAddict  I tried but did not work

 

If(Dropdown2_1.Selected.Value="All",SalesSumbyLocation,Filter(SalesSumbyLocation, Left(Find(Grouped.SalesYear),".") = Text(Dropdown2_1.Selected.Value)))
 
I think left function is not complete. Also I tried as below, 
 
If(Dropdown2_1.Selected.Value="All",SalesSumbyLocation,Filter(SalesSumbyLocation, Left(Find(Grouped.SalesYear),".",4) = Text(Dropdown2_1.Selected.Value)))
 
Did not work
 
Osmand

My bad, yes the Left function was incorrect. Try this: 

 

If(Dropdown2_1.Selected.Value="All",SalesSumbyLocation,Filter(SalesSumbyLocationLeft(Grouped.SalesYear, Find(Grouped.SalesYear,".")) = Text(Dropdown2_1.Selected.Value)))

 

---
If you like this reply, please give kudos. And if this solves your problem, please accept this reply as the solution. Thanks!

Hardit Bhatia
https://www.thepoweraddict.com

Thank you @PowerAddict 

 

But still the = sign says Invalid argument type

 

 

Do me a favor please. On either side of the equation, if you keep your cursor, it should tell you the data type. Let me know what those are.

---
If you like this reply, please give kudos. And if this solves your problem, please accept this reply as the solution. Thanks!

Hardit Bhatia
https://thepoweraddict.com

Helpful resources

Announcements
PA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

PA Community Call

Power Apps Community Call

Next call is happening on April 21st at 8a PST.

MBAS Carousel

Sign up for our May 4th event!

May the fourth be with you, join us online!

secondImage

Experience what’s next for Power Apps

See the latest Power Apps innovations, updates, and demos from the Microsoft Business Applications Launch Event.

Top Solution Authors
Top Kudoed Authors
Users online (63,665)