Forum Discussion

Madhu7624's avatar
Madhu7624
Regular Visitor
1 year ago
Solved

Sorting Matrix Data Based on Slicer Selection

Hi Everyone,

I want to sort the data in a matrix in a specific order. When I select a value in the slicer.

Below is the raw data:

The matrix visual contains Product and Value [Measure].

Raw Data

 

Slicer 

 



The order in which the products need to be sorted depends on the year value selected in the slicer.




Raw Data : 

Table
ProductYearValue
P32023100
P22023200
P12023300
P8202340
P62023100
P12024200
P32024300
P2202440
P142024100
P122024200


slicer : Year 
2023
2024

Required order, when we click on slicer : 

Order Required
20232024
Orderorder
P1P1
P2P2
P3P3
P6P12
P8P14





  • Anonymous's avatar
    Anonymous
    1 year ago

    Hi Madhu7624 ,

     

    Thanks for the reply from BeaBF .

     

    First, create a calculated column to extract the number of products.

    ProductNumber = 
    VALUE(
        MID('Table'[Product],2,2)
    )
    

     

    Then, create a calculated column to sort the numbers.

    Order = 
    RANKX(
        FILTER(
            'Table',
            'Table'[Year] = EARLIER('Table'[Year])
        ),
        'Table'[ProductNumber],
        ,
        ASC,
        DENSE
    )

     

    Please create a matrix visual object for display. Drag Oder to the rows, Year to the columns, and Product to the values. the final visual is shown below:

     

    The pbix file is attached.

     

    If you have any other questions please feel free to contact me.

     

    Best Regards,
    Yang
    Community Support Team

     

    If there is any post helps, then please consider Accept it as the solution  to help the other members find it more quickly.
    If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!

4 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Madhu7624 ,

     

    Thanks for the reply from BeaBF .

     

    First, create a calculated column to extract the number of products.

    ProductNumber = 
    VALUE(
        MID('Table'[Product],2,2)
    )
    

     

    Then, create a calculated column to sort the numbers.

    Order = 
    RANKX(
        FILTER(
            'Table',
            'Table'[Year] = EARLIER('Table'[Year])
        ),
        'Table'[ProductNumber],
        ,
        ASC,
        DENSE
    )

     

    Please create a matrix visual object for display. Drag Oder to the rows, Year to the columns, and Product to the values. the final visual is shown below:

     

    The pbix file is attached.

     

    If you have any other questions please feel free to contact me.

     

    Best Regards,
    Yang
    Community Support Team

     

    If there is any post helps, then please consider Accept it as the solution  to help the other members find it more quickly.
    If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!

    • BeaBF's avatar
      BeaBF
      Super User

      Anonymous Yes but the RANKX is significantly more computationally expensive and resource-intensive compared to a simple sort by column operation, I recommend to use my process.

       

      BBF