Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago
Solved

Power Query: ¡Confundido con Pivot y Unpivot!

Hola a todos, estoy trabajando con datos en Power Query. En el omento tengo datos lodaed en PQ en el formulario:

MichaelF1_0-1649425821002.png

Necesito ponerlo en el formulario:

MichaelF1_1-1649425877774.png

He probado casi todas las combinaciones de Pivot y Unpivot que se me ocurren, pero parece que no puedo hacer que funcione.... espero que alguien más inteligente que yo pueda ayudar, por favor?

Gracias

Miguel

  • @MichaelF1 , Pruebe este código en una consulta vacía

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTJUitWBsIzALCcgyxjOMgGznIEsUzjLDMxyAbLM4SwLpdhYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", Int64.Type}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Number.Mod([Column2],2)),
        #"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Added Custom", {{"Custom", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Added Custom", {{"Custom", type text}}, "en-US")[Custom]), "Custom", "Column2", List.Sum),
        #"Renamed Columns" = Table.RenameColumns(#"Pivoted Column",{{"1", "Col2"}, {"0", "Col3"}})
    in
        #"Renamed Columns"

    Sólo es posible como valores en la columna 2 es divisor impar e par

3 Replies

  • @MichaelF1 , Pruebe este código en una consulta vacía

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTJUitWBsIzALCcgyxjOMgGznIEsUzjLDMxyAbLM4SwLpdhYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", Int64.Type}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Number.Mod([Column2],2)),
        #"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Added Custom", {{"Custom", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Added Custom", {{"Custom", type text}}, "en-US")[Custom]), "Custom", "Column2", List.Sum),
        #"Renamed Columns" = Table.RenameColumns(#"Pivoted Column",{{"1", "Col2"}, {"0", "Col3"}})
    in
        #"Renamed Columns"

    Sólo es posible como valores en la columna 2 es divisor impar e par

  • Hola @amitchandak , gracias por tu sugerencia. Puedo replicar su código y se ejecuta correctamente, pero no puedo aplicarlo al ejemplo real que tengo.

    Cuando ejecuto el código, paso a paso, puedo llegar al paso #"Added Custom" cuando agrega Column2. Sin embargo, los 1s y 0s no coinciden con cómo era en su ejemplo y los pasos posteriores no funcionan.

    Esto es lo que obtengo después de la #"Personalizada agregada"

    Capture.PNG

    Gracias de nuevo,

    Miguel

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Hola de nuevo @amitchandak ,

      ¡Parece estar funcionando ahora! Puse una columna de índice, luego usé el método Number.Mod para obtener la columna 1,0,10, luego el resto del código funcionó, así que gracias por su ayuda 🙂

      Miguel