Forum Discussion

shugs's avatar
shugs
Regular Visitor
9 years ago
Solved

Multiple choices answer count

Hi,

I'm new to Power BI and I can't figure out how to count the number of occurence of each answer from a multiple choice sharepoint form :

 

I have :

 

        Project       ¦     Choice       

       Project1       ¦                        

       Project2       ¦    Choice1        

      Project3        ¦    Choice1, Choice2

      Project4        ¦    Choice3, Choice4

       Project5       ¦   Choice1, Choice2, Choice3

                     ...

 

And I would like to obtain

 

        Choice       ¦   number of occurence

        Choice1      ¦   3

        Choice2      ¦   2

        Choice3      ¦   2

        Choice4      ¦   1

             ....

 

The list of choices is not defined by a separate sharepoint list. I have searched through the forum and have found several subject discussing similar topics but still haven't found a way to implement this. Any help? 

  • Hi shugs,

     

    If you data is in that format you present first of all you need to change you information format.

     

    Go to the query editor and do the following steps:

     

    1. Choose column Choice
    2. Transform -> Split column -> By Delimeter
      1. Choose the comma as your delimeter
      2. Now you have a table with Project and one column per response
    3. Choose all the columns besides the project
    4. Transform -> Unpivot Columns
      1. Return a table with: Project, Attribute, Value
    5. Delete column Attribute
    6. Rename Value to your choice
    7. Save and return to PBI desktop

     

    Now just add you Value to the table visual and the Project (this should be count)

     

    Regards,

     

    MFelix

     

     

     

6 Replies

  • Hi shugs,

     

    If you data is in that format you present first of all you need to change you information format.

     

    Go to the query editor and do the following steps:

     

    1. Choose column Choice
    2. Transform -> Split column -> By Delimeter
      1. Choose the comma as your delimeter
      2. Now you have a table with Project and one column per response
    3. Choose all the columns besides the project
    4. Transform -> Unpivot Columns
      1. Return a table with: Project, Attribute, Value
    5. Delete column Attribute
    6. Rename Value to your choice
    7. Save and return to PBI desktop

     

    Now just add you Value to the table visual and the Project (this should be count)

     

    Regards,

     

    MFelix

     

     

     

    • iva_b's avatar
      iva_b
      Frequent Visitor

      Hi,

       

      This worked for me, thanks a lot!

       

      But just to add - I worked with a data including more columns than the Project and Choice columns, and the Unpivot Columns solution removes the records with empty Choice column. So it's good to create a new table containing only the Project and Choice columns to avoid losing data.

  • MarcelBeug's avatar
    MarcelBeug
    Community Champion

    Alternative solution in Power Query:

    • Remove empty Choices
    • Choose tab Transform - Format - Trim
      Adjust the generated code to use Text.Split (on ","), which will result in nested lists
    • Remove Project column
    • Expand the "Choice" column
    • Choose tab Transform - Group By Choice and count rows (which is the default operation)
      In the popup screen of "Group By", name the new column "Number of occurrence".

    Resulting code (in which I adjusted the step names for better readability):

     

    let
        Source = InputTable,
        RemovedEmpties = Table.SelectRows(Source, each ([Choice] <> null)),
        Splitted = Table.TransformColumns(RemovedEmpties,{{"Choice", each Text.Split(_, ",")}}),
        RemovedProject = Table.RemoveColumns(Splitted,{"Project"}),
        ExpandedChoice = Table.ExpandListColumn(RemovedProject, "Choice"),
        Trimmed = Table.TransformColumns(ExpandedChoice,{},Text.Trim),
        GroupedWithCount = Table.Group(Trimmed, {"Choice"}, {{"Number of occurrence", each Table.RowCount(_), type number}})
    in
        GroupedWithCount

     

  • I have similar problem. But some columns (Response to Survey) are subjective response and the sentences may actually have a comma in them. If I use the comma delimiter solution, this will be a problem. Any suggestions?