Forum Discussion

v4anand18's avatar
v4anand18
Advocate I
8 years ago
Solved

Sorting a table using multiple columns

Hi All,

 

 

Is it possible to sort a table using multiple columns?

 

 Revenue table

 

My table looks like this and i would like to sort by "Year" first and then by "Month". Is it possible?

  • I see this tread is quite old, but sorting a visual by one column and then a second column is as simple as clicking the 1st column header to sort ascending or decending. Then simply hold the <Shift> key down and click on the header of the second column.
    Of course you can just keep the <Shift> pressed and click on a 3rd, 4th etc until happy. 

    I hope this helps. 
    Steve B

29 Replies

  • I see this tread is quite old, but sorting a visual by one column and then a second column is as simple as clicking the 1st column header to sort ascending or decending. Then simply hold the <Shift> key down and click on the header of the second column.
    Of course you can just keep the <Shift> pressed and click on a 3rd, 4th etc until happy. 

    I hope this helps. 
    Steve B

    • Inigo_Montoya's avatar
      Inigo_Montoya
      Regular Visitor

      Someone give Steve B some love over here because THIS IS THE ANSWER IN JUNE 2022, PEOPLE!

    • MattRasmussen's avatar
      MattRasmussen
      Helper I

      This is THE REAL ANSWER we need.  Thank you for sharing this!  I didn't like the accepted answer from 2018, so I'm glad I kept reading down the thread.

  • v4anand18,

    Yes it is possible, but not from the visual side

     

    You will have to do all the sorting based on multiple columns in the Power Query and then build you visual using the table.

     

    If you have already built a visual, changing the sorting now might not show the proper sorting. In such case you will have to re-create the visual from scratch

     

    Here's how the M code will look once you sort in Power Query

     

    = Table.Sort(#"Changed Type",{{"Team", Order.Ascending}, {"Plan", Order.Descending}})

    You can see from the below image that inspite of not applying sorting in the visual, due to the sorting at power Query, my data looks sorted as expected

     

    i.e. In the Visual Team is sorted in Ascending Order and then Plan is getting sorted in descending order with in each Team.

     

     

     

     

    • emrc's avatar
      emrc
      New Member

      You can sort multiple columns in a table just by holding the shif key and clicking the column  headers you want to sort.

    • ncoop's avatar
      ncoop
      Regular Visitor

      Hello,

      I successfully edited M code in the query to sort how I would like, but after closing and applying the sort is not how I intended. I tried sorting the column by itself (default), but no success.

       

      Suggestions?

       

      Thank you,

    • annaY's avatar
      annaY
      Regular Visitor

      Hi there,

       

      This was helpful; however, when I exit out of power query and refresh the original data does not reflect the sorted values. Any thoughts on how to change that?

      • saf's avatar
        saf
        Regular Visitor

        Same problem... sorting ok in power query, but not in visual side...

  • Anonymous's avatar
    Anonymous
    Not applicable

    Coming from a Tableau environment, I don't understand why this functionality doesnt exist in this tool. 

     

    Sorting by mulitple columns is very basic stuff in Excel. 

     

    Sorting within Power Query is not a good solution; a different VIZ, using the same data, might require a different sort.  

     

     

  • The "Accepted Solution" is definitely wrong. With that sample data, even if you don't specify an order in Power Query, the result is the same:

    And no matter what sort order you specify in it, it will stay the same. In a table visual data will be sorted from left to right. In this case Team > Country > Plan > Actual. If you sort by a specific column, then - I think - the sort order will be "Selected Column" then from left to right. If you want to sort a table by multiple columns, the only option you have is to have a concatenated column with the necessary columns and specify the sort order on that column, which is obviously not a nice workaround, but might work in some cases.

     

    Likely you can verify this using DAX Studio and check the executed query behind the curtains.

  • micwebnet's avatar
    micwebnet
    Microsoft Employee

    Provided accepted solution is incorrect. It only sorts PQ table and doesn't affect the visual. You'll need to add an Index column after the multi-column PQ sort and then sort your table on that column in PBI Desktop. Here's a video on how to do it: https://www.youtube.com/watch?v=RHhITmZjuDA.

     

    Best,  Michael

      • roopsnegi's avatar
        roopsnegi
        Regular Visitor

        Hi,

        I am trying to apply this step in my query editor as a step, but it throws an error. Could you please suggest how to resolve it.

        Expression.Error: The name 'Changed Type' wasn't recognized.  Make sure it's spelled correctly.

         

        Thank you,

        Roopali

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hello,

     

    I found this thread and am doing somethign similar. I am using this method with the M code, and it works perfectly. I am tryign to now get the table to display as the data in the query does, but cannot figure out why it is sorting columns alphabeticlly and not following the source sorting?

     

    New to Power Bi, so would need simple or easy to follow help.

     

    Thank you, 

  • Hi all! Is it possible to sort a table by multiple columns using "contain" in Power Query?
    • Hennadii's avatar
      Hennadii
      Helper IV

      Hi Doyin , use expression like this

      = Table.Sort(#"Previous Step",{{"Column1", Order.Ascending}, {"Column2", Order.Ascending}})

       

      • Anonymous's avatar
        Anonymous
        Not applicable

        Well, actually, this answer, wouldn't it be useful in Power Query instead of the question? I don't mean to be rude, but I'm new and I don't know how to apply the answer in the question. Thanks in advance.