cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Pegger
Helper I
Helper I

Transpose Data Collection

I am trying to transpose a data collection.

 

Original Collection Format (Orig_Collection)

      Q1             Q2

   Agree        Disagree

 

Target Collection Format (Target_Collection)

      Question     Response

         Q1              Agree

         Q2           Disagree

 

ClearCollect(Target_Collection,
{Question: "Q1", Response:Orig_Collection.Q1},

{Question: "Q2", Response:Orig_Collection.Q2} );

 

I am performing this action on the OnVisible property for the screen.  My problem is that the Response column in the Target Collection is showing the values in a nested table.  I just want the response to show as text (either "Agree" or "Disagree").

1 ACCEPTED SOLUTION

Accepted Solutions
Eelman
Community Champion
Community Champion

@Pegger 

Transpose = yuck! in PowerApps, but this does it for you. Note, this will only work on a table with one record. You may need to adjust it for tables with more than one record ... that's a project for you 🙂

 

Clear(Target_Collection);
ForAll(

    // create table of records in JSON format and substitute out the unneeded Chars
    Split(
        Substitute(
            Substitute(
                Substitute(
                    Substitute(
                        Substitute(
                            JSON(
                                Orig_Collection,
                                JSONFormat.IgnoreBinaryData
                            ),
                            "[",
                            ""
                        ),
                        "{",
                        ""
                    ),
                    "}",
                    ""
                ),
                "]",
                ""
            ),
            Char(34),
            ""
        ),
        ","
    ),
    
    // Transpose data
    Collect(
        Target_Collection,
        {
            Question: Left(
                ThisRecord.Result,
                Find(
                    ":",
                    ThisRecord.Result
                ) - 1
            ),
            Response: Mid(
                ThisRecord.Result,
                Find(
                    ":",
                    ThisRecord.Result
                ) + 1
            )
        }
    )
)

 

 

 

View solution in original post

1 REPLY 1
Eelman
Community Champion
Community Champion

@Pegger 

Transpose = yuck! in PowerApps, but this does it for you. Note, this will only work on a table with one record. You may need to adjust it for tables with more than one record ... that's a project for you 🙂

 

Clear(Target_Collection);
ForAll(

    // create table of records in JSON format and substitute out the unneeded Chars
    Split(
        Substitute(
            Substitute(
                Substitute(
                    Substitute(
                        Substitute(
                            JSON(
                                Orig_Collection,
                                JSONFormat.IgnoreBinaryData
                            ),
                            "[",
                            ""
                        ),
                        "{",
                        ""
                    ),
                    "}",
                    ""
                ),
                "]",
                ""
            ),
            Char(34),
            ""
        ),
        ","
    ),
    
    // Transpose data
    Collect(
        Target_Collection,
        {
            Question: Left(
                ThisRecord.Result,
                Find(
                    ":",
                    ThisRecord.Result
                ) - 1
            ),
            Response: Mid(
                ThisRecord.Result,
                Find(
                    ":",
                    ThisRecord.Result
                ) + 1
            )
        }
    )
)

 

 

 

Helpful resources

Announcements
Power Platform Call June 2022 768x460.png

Power Platform Community Call

Join us for the next call on August 17, 2022 at 8am PDT.

Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

365 EduCon 768x460.png

Microsoft 365 EduCon

Join us for two optional days of workshops and a 3-day conference, you can choose from over 130 sessions in multiple tracks and 25 workshops.

Users online (1,669)