Forum Discussion

arlequin71's avatar
arlequin71
Icon for Helper II rankHelper II
6 years ago
Solved

Matrix - Show values from 2 crossing ranks

Hello, i'm looking for a best way to create a Matrix table like the attached example that can be filtered by date.

I have tried using measures ranks and columns ranks but  i could't obtain desired results.

 

These are the metrics i need to cross in matrix:

# Visits range = # of customers ID in a period   // 0 to 3 ; 4 to 7 ; 8 to 11 ; more than 12

 

Amount Range = Total amount in a period  //  2000 to 5000 ; 5001 to 8000 ; 8001 to 10000; > 10000

Thanks a lot in advance for your help.

 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("XZLNasNADITfxecY9LtaHZ0fJxj6BCGHFHotpe9/qOMN2UlvKz40OyPpeh2maRp2QxmX+/cotD5VlWS47a7Dfr9fa7Zx/vpszEIaal1Sxo/7b0NSg8vGDofDWsc4/TyRu2ls6Hg8PhR7l7uiIGv/i50sQZAZfCilAxPtkkxZkCkYqcKB/glih1YBk9GRSCGCiXj/TEmLYgAHRcuUt4m8EEeJ5vF0Oq11do9ixQQQR48tTAxIrBuxVE5kFSaZ8pzI+XzeajBZmFqAeZ63aXWTbmQQG7fNxtnaLpfLPytes25oWZYHCkCUz7bG8OxqOAFidGLpiZIJwY2F3nf6Cl5UHZDC4WnNKNgGl6eyig632x8=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [ID = _t, Fecha = _t, Amount = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", type text}, {"Fecha", type date}, {"Amount", Int64.Type}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Fecha", "Date"}})
in
    #"Renamed Columns"

 

 

 

 

12 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hey arlequin71 

     

    Just add a timeline slicer like this one: https://appsource.microsoft.com/en-us/product/power-bi-visuals/WA104380786?tab=Overview

     

    It will be a separate visual, but as long as your data has a date column it will filter your Matrix when you make changes to it.

     

    If you're asking for help with creating your column and row headers I would just create healper columns with IF statements (and maybe FILTER or SUMX formulas) returning your desired result.

     

    If this helps please kudo.

    If this solves your problem please accept it as a solution.

    • arlequin71's avatar
      arlequin71
      Icon for Helper II rankHelper II

      Hello Anonymous  do you have some reference link to know how to create helper headers columns?

       

      Thanks!

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hey arlequin71 

         

        I would need to see a sample of how your data is set up in order to make sure I direct you correctly, but essentially you would create your desired result in a table using your parameters.

         

  • Hi arlequin71 ,

     

     

    can you share more on what you wish to create?

     

    For example, I see that in the sample that you have 9 customer distinct IDs and the sum of the amount is 791546 so I would fill the table as below. Is that correct?

     

    How would you fill all the other cells in the table?

     

    LC

     

    Visit Range 0 to 3 4 to 7 8 to 11 > 12
    Amount Range        
    2k to 5k         
    5k to 8k        
    8k to 10k        
    > 10k     791546  

     

    • arlequin71's avatar
      arlequin71
      Icon for Helper II rankHelper II

      The total Amount 791,546 should be apportioned in the corresponden Rows and Columns intersections.

       

      Thanks in advance,

       

       

    • arlequin71's avatar
      arlequin71
      Icon for Helper II rankHelper II

      Hello,

      Attached the main table Power Query script that is linked to a standard Calendar Table.

       

      let
          Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("XZLNasNADITfxecY9LtaHZ0fJxj6BCGHFHotpe9/qOMN2UlvKz40OyPpeh2maRp2QxmX+/cotD5VlWS47a7Dfr9fa7Zx/vpszEIaal1Sxo/7b0NSg8vGDofDWsc4/TyRu2ls6Hg8PhR7l7uiIGv/i50sQZAZfCilAxPtkkxZkCkYqcKB/glih1YBk9GRSCGCiXj/TEmLYgAHRcuUt4m8EEeJ5vF0Oq11do9ixQQQR48tTAxIrBuxVE5kFSaZ8pzI+XzeajBZmFqAeZ63aXWTbmQQG7fNxtnaLpfLPytes25oWZYHCkCUz7bG8OxqOAFidGLpiZIJwY2F3nf6Cl5UHZDC4WnNKNgGl6eyig632x8=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [ID = _t, Fecha = _t, Amount = _t]),
          #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", type text}, {"Fecha", type date}, {"Amount", Int64.Type}}),
          #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Fecha", "Date"}})
      in
          #"Renamed Columns"

       Thanks in advance for your help.

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hey just so I'm clear there are just the three columns? ID, Fecha (Date), and Amount?

         

        And you need the measures to change dynamically with the timeline filter?

         

        Also, the Amount ranges is that calculated by customers individually? It must be otherwise there would only be one line with data by column grouping, but I just want to confirm.