Forum Discussion

some1else's avatar
some1else
Helper II
5 years ago
Solved

Transpose using DAX and virtual table

Hi guys.

 

If I were to transpose columns into rows like the image below, how could I achieve it using a virtual table in a measure? I don't want to create a copy of the existing table and store it in the model.

 

From my understanding this should be possible using UNION, SELECTCOLUMNS or maybe SUMMARIZE, but I'm struggling to get them right.

 

Thanks in advance.

  • Hi, some1else 

    The easiest way to get the results you want is to transpose them in the Query Editor.

    Sample data:

    Step 1: Use Headers as First Row

    Step 2: Transpose

    Result:

     

     

    Is this the result you want? Hope this is useful to you

    Please feel free to let me know If you have further questions

     

     

    Best Regards,
    Community Support Team _ Zeon Zheng
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

4 Replies

  • MattAllington's avatar
    MattAllington
    Community Champion

    The bigger question is why you have the first table in the model. The first table does not look like a structure that is well suited to PBI. Does the table really have just 2 rows?  Consider transposing the first table and loading it once in the transposed state. You can do this in power query

    1. Use headers as first row

    2. Transpose

    3. Rename the first column "header"

    3. Unpivot the 3 column table into 2 columns


    this should give you 3 new columns (header, attribute, value). 

    from there you can use a matrix with header on rows, attribute on column, and value in the values section. 

  • selimovd's avatar
    selimovd
    Most Valuable Professional

    Hey some1else ,

     

    a close approach is the following table:

    UNION (
        SELECTCOLUMNS ( myTable, "ID", "A", "Value", [A] ),
        SELECTCOLUMNS ( myTable, "ID", "B", "Value", [B] ),
        SELECTCOLUMNS ( myTable, "ID", "C", "Value", [C] ),
        SELECTCOLUMNS ( myTable, "ID", "D", "Value", [D] )
    )

     

    Check if that would work, that's more or less a unpivot of the table.

    If you need any help please let me know.
    If I answered your question I would be happy if you could mark my post as a solution ✔️ and give it a thumbs up 👍
     
    Best regards
    Denis
     
    • some1else's avatar
      some1else
      Helper II

      Feeling very dumb right now...

       

      Tried that but no sucess as it gives an error expecting one value only (tried with a measure, because I don't want to physically create columns or new tables).

      Below image with the error and image with table OTs with the columns currently on it.

       

      The idea is to have the WONUM and ZMC in row and the values in columns

       

       

  • Hi, some1else 

    The easiest way to get the results you want is to transpose them in the Query Editor.

    Sample data:

    Step 1: Use Headers as First Row

    Step 2: Transpose

    Result:

     

     

    Is this the result you want? Hope this is useful to you

    Please feel free to let me know If you have further questions

     

     

    Best Regards,
    Community Support Team _ Zeon Zheng
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.