cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Helper IV
Helper IV

Sort Month Drop Down Chronologically

Hi all!

 

I have a drop down in my power apps and the items are the months column from SharePoint. How do I sort the month record chronologically?

 

For example:

 

Jan

Apr

Dec

 

Right now, what I did is:

Sort(Distinct(Filter('SP LIST', Dept = varDept, Year = RecordedYear.Selected.Result), Month),Result,Descending)

 

But it sort the month alphabetically like this:

Jun

Jan

Apr

 

Any idea for this?

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Super User
Super User

Re: Sort Month Drop Down Chronologically

@_kikilalaaa 

Plenty of good ideas here already but I'll my 2 cents as well 🙂

 

You can use AddColumns on the fly like this

Sort(
    AddColumns(
      Distinct(
         Filter('SP LIST', Dept = varDept, Year = RecordedYear.Selected.Result), 
          Month),
          "Rank", 
          Switch(Result,
          "Jan", 1, "Feb", 2, "Mar", 3, "Apr", 4, "May", 5, "Jun", 6,
          "Jul", 7, "Aug", 8, "Sep", 9, "Oct", 10, "Nov", 11, "Dec", 12)
     ),Rank,
     Ascending
)

Note: change your Month text values to suit if they differ from my code? You really should consider a Date column formatted as date though. Makes life very easy 🙂

 

View solution in original post

17 REPLIES 17
Highlighted
Super User
Super User

Re: Sort Month Drop Down Chronologically

Hi @_kikilalaaa ,

The below does not deal with any delegation issues you will get with a date and distinct filter, but you should use the Month function, which returns a number between 1 and 12 for the month, so you could try something like this with your date field.

Sort(
   Distinct(
      Filter(
         'SP LIST', 
         Dept = varDept, 
         Year = RecordedYear.Selected.Result
      ), 
     Month
   ),
   Month([Your Date Field]),
   Ascending
)

 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.

Highlighted
Helper IV
Helper IV

Re: Sort Month Drop Down Chronologically

hi @WarrenBelz

 

that is a very good idea but i am not sure if that is the one i look for.

does this means that the [date field] must be in date format? 

 

Because in my sharepoint, I do not have date column. the [month] field is in a single text and i do not want to change it to date as I want it to be "Jan,Feb...." . 

 

Let me explain about my project in more detailed.

 

In my screen there are 2 dropdowns. One for "Year" and one is "Month". When user choose certain Year from YearDropDown, it will filter the "Month" DropDown and display the available month for that year chronologically. Currently, it can display the months available but it is not chronologically. Is there an option where I can assign "Jan" = 1, "Feb" = 2..... so that i can sort it accordingly?

 

Thanks!

Highlighted
Super User
Super User

Re: Sort Month Drop Down Chronologically

Hi @_kikilalaaa ,

I don't know of any way of converting the text "Jan" back to a month number, However if you stored a date you could display it as the month name as below

Text([your date],"[$-en-US]mmmm")  //for January
Text([your date],"[$-en-US]mmm")   //for Jan

That way also the formula I have given below will also work on the sort.

 

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.

 

Highlighted
Super User
Super User

Re: Sort Month Drop Down Chronologically

@WarrenBelz and @_kikilalaaa

Without getting into too much details about this specific use case (because I didn't understand "display the available month for that year"), I potential way is to create a Collection that has two Columns, MonthNumber and MonthName.
The Items property of the dropdown could be this collection (filtered in whatever way you want) and then it can be sorted by the MonthNumber column.

Does this sound like an approach that we can work with?

---
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
Highlighted
Helper IV
Helper IV

Re: Sort Month Drop Down Chronologically

Hi @PowerAddict,

I am thinking about this too but I am not familiar with Collections. How do I create for 2 columns?

For your question, the months available is the recorded months for the particular year. Let say the year 2020 only have record for Jan and March. Therefore, the month drop down should be:

Mar

Jan

 

 

Another way that I can think is that, actually I have another dropdown, I call it as MonthList, which the items are all months(Jan - Dec). Can I sort the "available month drop down" based on "MonthList" drop down?

 

Sorry i know it is very confusing. Thank you for your patience!

Highlighted
Super User
Super User

Re: Sort Month Drop Down Chronologically

Kindly try what @WarrenBelz suggested.
You can't sort by month name. For example Dec will come before May because of spelling.
Highlighted
Super User
Super User

Re: Sort Month Drop Down Chronologically

@_kikilalaaa 

Plenty of good ideas here already but I'll my 2 cents as well 🙂

 

You can use AddColumns on the fly like this

Sort(
    AddColumns(
      Distinct(
         Filter('SP LIST', Dept = varDept, Year = RecordedYear.Selected.Result), 
          Month),
          "Rank", 
          Switch(Result,
          "Jan", 1, "Feb", 2, "Mar", 3, "Apr", 4, "May", 5, "Jun", 6,
          "Jul", 7, "Aug", 8, "Sep", 9, "Oct", 10, "Nov", 11, "Dec", 12)
     ),Rank,
     Ascending
)

Note: change your Month text values to suit if they differ from my code? You really should consider a Date column formatted as date though. Makes life very easy 🙂

 

View solution in original post

Highlighted
Super User
Super User

Re: Sort Month Drop Down Chronologically

You can create a collection like this:

ClearCollect(MonthColl, {ID: 1, Name: "Jan"}, {ID: 2, Name: "Feb"} and so on.

Let me know if you are able to use this in some way else try what @WarrenBelz has suggested.

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

Thanks!
Hardit Bhatia
The Power Addict
https://thepoweraddict.com
Highlighted
Super User
Super User

Re: Sort Month Drop Down Chronologically

Hello all,

Yep - all of that would work depending on how you @_kikilalaaa wants to design the program.

The thrust of my suggestion was that from a data governance point of view, a date, even it is presented in other ways to users, is something that is seriously worth considering having in a record.

The numbered month lists could be presented in a number of ways, including what my very capable colleagues @PowerAddict  and @Eelman have suggested.

If you want something more static, a SharePoint list with 12 items input from Jan to Dec could be sorted by ID.

 

 

 

Helpful resources

Announcements
Check this Out

Announcing

Class of 2020- Season 2

Check this Out

Helpful information

Featuring samples like Return to the Workplace and Emergency Response Applications

August 2020 Community Challenge: Can You Solve These?

August 2020 Community Challenge: Can You Solve These?

We're excited to announce our first cross-community 'Can You Solve These?' challenge!

secondImage

Return to Workplace

Reopen responsibly, monitor intelligently, and protect continuously with solutions for a safer work environment.

secondImage

Power Platform 2020 release wave 2 plan

Features releasing from October 2020 through March 2021

Top Solution Authors
Top Kudoed Authors
Users online (8,175)