Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get Fabric certified for FREE! Don't miss your chance! Learn more

Reply
LuisMLData
Frequent Visitor

Different values in one row

Hi friends, I have a problem with a dataset. 

 

There is a column with serveral values in one row. How can I get those values into different columns ? 

This is an example: 

 

IdnamePersonal ID number
2LuisQuestion: Personal ID Number  Answer: 1-7
Question: English level?  Answer: adv
Question: Are you looking for Work at Home or Onsite positions?  Other
3EnriqueQuestion: Personal ID Number  Answer: 1-rere7
Question: English level?  Answer: advanced
Question: Are you looking for Work at Home or Onsite positions?  Other"

 

The desire results is as follows: 

 

IdnameEnglish LevelAre you looking…Have you …
2Luis7-JanadvOther
3Enrique1-rere7advancedOther
1 ACCEPTED SOLUTION
jbwtp
Memorable Member
Memorable Member

If this does have "Answer:" for every question then the soluiton is below:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("rY4xCsJAEEWvMmwdC7UQ0kjAgIIYrSxCitWMyZLNjM7uRryNZ/FkbmdKBavPh/c/ryzVTCVqG4yLcQjovGFKYY/imLSFzQp2oT+hvJ6QkbujpDCdLOCD5tRY41qwOKBdjjBdDyMsE4QHB7DMnaEGLixwZOlAe1hzjxB7Qc54hCvHiCM3fit8i6KqpFTzaJqTmFvAX5wFBb/11nTG+v/y1Rs=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Id = _t, name = _t, #"Personal ID number" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Id", Int64.Type}, {"name", type text}, {"Personal ID number", type text}}),


   fTransform = (r)=> 
        let 
            Split = Text.Split(r[Personal ID number], "Question:"),
            Filter = List.Select(Split, each Text.Length(Text.Trim(_)) > 0),
            Split2 = List.Transform(Filter, each Text.Split(_, "Answer:")),
            Headers = Table.PromoteHeaders(Table.FromColumns(Split2))
        in
            Headers,  
    
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each fTransform(_)),
    #"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {" Personal ID Number  ", " English level?  ", " Are you looking for Work at Home or Onsite positions?  "}, {" Personal ID Number  ", " English level?  ", " Are you looking for Work at Home or Onsite positions?  "})
in
    #"Expanded Custom"

View solution in original post

5 REPLIES 5
jbwtp
Memorable Member
Memorable Member

Hi @LuisMLData,

 

there is an "Answer:" prefix for every answer except the last one. Is this a feature or you just missed the word?

 

Thanks,

John

I missed the word, sorry

Then my earlier post should help to resolve it :).

jbwtp
Memorable Member
Memorable Member

If this does have "Answer:" for every question then the soluiton is below:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("rY4xCsJAEEWvMmwdC7UQ0kjAgIIYrSxCitWMyZLNjM7uRryNZ/FkbmdKBavPh/c/ryzVTCVqG4yLcQjovGFKYY/imLSFzQp2oT+hvJ6QkbujpDCdLOCD5tRY41qwOKBdjjBdDyMsE4QHB7DMnaEGLixwZOlAe1hzjxB7Qc54hCvHiCM3fit8i6KqpFTzaJqTmFvAX5wFBb/11nTG+v/y1Rs=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Id = _t, name = _t, #"Personal ID number" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Id", Int64.Type}, {"name", type text}, {"Personal ID number", type text}}),


   fTransform = (r)=> 
        let 
            Split = Text.Split(r[Personal ID number], "Question:"),
            Filter = List.Select(Split, each Text.Length(Text.Trim(_)) > 0),
            Split2 = List.Transform(Filter, each Text.Split(_, "Answer:")),
            Headers = Table.PromoteHeaders(Table.FromColumns(Split2))
        in
            Headers,  
    
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each fTransform(_)),
    #"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {" Personal ID Number  ", " English level?  ", " Are you looking for Work at Home or Onsite positions?  "}, {" Personal ID Number  ", " English level?  ", " Are you looking for Work at Home or Onsite positions?  "})
in
    #"Expanded Custom"

Thank you! This enlightens me a lot!

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.