Forum Discussion

popobawa23's avatar
popobawa23
Frequent Visitor
7 years ago
Solved

Pivot my data's rows into columns with custom headings

Hi everyone, 

 

I have a data set that has repeating IDs, and I want it to have each ID as its own entry, and the repeating rows as column entries. Below is the original data:

IDPersonAmountChecked byDate_checked
1John$200Andrew01/10/2019 12:34
1John$200James01/10/2019 15:30
1John$200Arthur01/10/2019 16:01
1John$200Sam02/10/2019 08:34
2Aisha$342James01/10/2019 16:34
2Aisha$342Sarah02/10/2019 10:13
2Aisha$342Sam03/10/2019 09:11

 

What I require is the following so I can analyze the time between checkers:

IDPersonAmountCheck 1Date 1Check 2Date 2Check 3Date 3Check 4Date 4
1John$200Andrew01/10/2019 12:34James01/10/2019 15:30Arthur01/10/2019 16:01Sam02/10/2019 08:34
2Aisha$342James01/10/2019 16:34Sarah02/10/2019 10:13Sam03/10/2019 09:11NULLNULL

 

I tried using the matrix visualization but it only lets me see first and last checkers (and even then, the name shown is incorrect). Please help me out, I've been racking my brain for days trying to figure out how to handle this data.

  • Hi popobawa23 

     

    You can add a column to your table that will rank your checks like below.

    Check Rank = 
    VAR _id = 'Table'[ID] 
    VAR _rank =
        RANKX( 
            FILTER( 
                'Table', 
                'Table'[ID] = _id ), 
            'Table'[Date_checked] 
        )
    RETURN "Check " & _rank

    This will have the following result when used as a Column in Matrix

     

    Best Regards,
    Mariusz

    If this post helps, then please consider Accepting it as the solution.

    Please feel free to connect with me.
    Mariusz Repczynski

     

5 Replies

  • Mariusz's avatar
    Mariusz
    Icon for Community Champion rankCommunity Champion

    Hi popobawa23 

     

    You can add a column to your table that will rank your checks like below.

    Check Rank = 
    VAR _id = 'Table'[ID] 
    VAR _rank =
        RANKX( 
            FILTER( 
                'Table', 
                'Table'[ID] = _id ), 
            'Table'[Date_checked] 
        )
    RETURN "Check " & _rank

    This will have the following result when used as a Column in Matrix

     

    Best Regards,
    Mariusz

    If this post helps, then please consider Accepting it as the solution.

    Please feel free to connect with me.
    Mariusz Repczynski

     

    • popobawa23's avatar
      popobawa23
      Frequent Visitor

      This is great Mariusz, works just like you showed 😄. I have 2 issues though, Is it possible to add the name of the person? and also to reverse the order of the checkers to start from the first one to the last checker?

      • Mariusz's avatar
        Mariusz
        Icon for Community Champion rankCommunity Champion

        Hi popobawa23 

         

        Sure, to change the order, all you need to do is add an extra argument to RANKX function, like below.

        Check Rank = 
        VAR _id = 'Table'[ID] 
        VAR _rank =
            RANKX( 
                FILTER( 
                    'Table', 
                    'Table'[ID] = _id ), 
                'Table'[Date_checked],,
                ASC 
            )
        RETURN "Check " & _rank

         

        I've added the Person to a visual as well, please see the attached.

         

        Best Regards,
        Mariusz

        If this post helps, then please consider Accepting it as the solution.

        Please feel free to connect with me.
        Mariusz Repczynski