Forum Discussion

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

Tabla transformadora

Hola

Tengo una tabla similar al formato:

Parte Parámetro Valor
1Ubicación TX
1Rechazado0
1IDENTIFICACIÓN12
2Ubicación MO
2Rechazado1
2IDENTIFICACIÓN15
3Ubicación GUSTAR
3Rechazado0
3IDENTIFICACIÓN21

Quiero convertir esto a un formato:

ParteUbicaciónRechazadoIDENTIFICACIÓN
1TX012
2MO115
3GUSTAR021

¿Puede alguien por favor decirme cómo abordar este problema? Realmente aprecio cualquier idea. ¡Gracias!

  • Puede probar los siguientes pasos en Power Query (sección Transformar en la parte superior):

    1: seleccione la columna Valor y seleccione "Columna dinámica"
    2: Vaya a la opción "Usar primera fila como encabezados" y seleccione "Usar encabezados como fila"

    3: Ahora transponer la tabla

    4: Vaya a la opción "Usar primera fila como encabezados" y seleccione "Usar primera fila como encabezados".

    5: Está hecho, pero puede hacer más ajustes como ordenar y cambiar el nombre de las columnas.

    sm_talha_0-1631033822987.png

    Aquí está la consulta M:

    dejar
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUfLJT04syczPUwCyQyKUYnUgwkGpWanJJakpQKYBXNDTBUgYGoH5Rmh6ff3hwkh6DeGCEL2mYL4xml5nR7gwhr3GML1GQLNiAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) en la tabla de tipos [#"Part " = _t, #"Parameter " = _t, Value = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Part ", Int64.Type}, {"Parameter ", type text}, {"Value", type text}}),
    #"Columna pivotada" = Table.Pivot(Table.TransformColumnTypes(#"Changed Type", {{"Part ", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Changed Type", {{"Part ", type text}}, "en-US")[#"Part "]), "Part", "Value"),
    #"Encabezados degradados" = Table.DemoteHeaders(#"Columna pivotada"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Demoted Headers",{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}}),
    #"Tabla transpuesta" = Table.transpose(#"Changed Type1"),
    #"Encabezados promocionados" = Table.PromoteHeaders(#"Tabla transpuesta", [PromoteAllScalars=true]),
    #"Changed Type2" = Table.TransformColumnTypes(#"Promoted Headers",{{"Parameter ", Int64.Type}, {"ID", Int64.Type}, {"Location ", type text}, {"Rejected", Int64.Type}}),
    #"Columnas renombradas" = Table.RenameColumns(#"Changed Type2",{{"Parameter ", "Part"}}),
    #"Columnas reordenadas" = Table.ReorderColumns(#"Columnas renombradas",{"Parte", "Ubicación", "Rechazado", "ID"})
    en
    #"Columnas reordenadas"



2 Replies

  • Puede probar los siguientes pasos en Power Query (sección Transformar en la parte superior):

    1: seleccione la columna Valor y seleccione "Columna dinámica"
    2: Vaya a la opción "Usar primera fila como encabezados" y seleccione "Usar encabezados como fila"

    3: Ahora transponer la tabla

    4: Vaya a la opción "Usar primera fila como encabezados" y seleccione "Usar primera fila como encabezados".

    5: Está hecho, pero puede hacer más ajustes como ordenar y cambiar el nombre de las columnas.

    sm_talha_0-1631033822987.png

    Aquí está la consulta M:

    dejar
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUfLJT04syczPUwCyQyKUYnUgwkGpWanJJakpQKYBXNDTBUgYGoH5Rmh6ff3hwkh6DeGCEL2mYL4xml5nR7gwhr3GML1GQLNiAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) en la tabla de tipos [#"Part " = _t, #"Parameter " = _t, Value = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Part ", Int64.Type}, {"Parameter ", type text}, {"Value", type text}}),
    #"Columna pivotada" = Table.Pivot(Table.TransformColumnTypes(#"Changed Type", {{"Part ", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Changed Type", {{"Part ", type text}}, "en-US")[#"Part "]), "Part", "Value"),
    #"Encabezados degradados" = Table.DemoteHeaders(#"Columna pivotada"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Demoted Headers",{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}}),
    #"Tabla transpuesta" = Table.transpose(#"Changed Type1"),
    #"Encabezados promocionados" = Table.PromoteHeaders(#"Tabla transpuesta", [PromoteAllScalars=true]),
    #"Changed Type2" = Table.TransformColumnTypes(#"Promoted Headers",{{"Parameter ", Int64.Type}, {"ID", Int64.Type}, {"Location ", type text}, {"Rejected", Int64.Type}}),
    #"Columnas renombradas" = Table.RenameColumns(#"Changed Type2",{{"Parameter ", "Part"}}),
    #"Columnas reordenadas" = Table.ReorderColumns(#"Columnas renombradas",{"Parte", "Ubicación", "Rechazado", "ID"})
    en
    #"Columnas reordenadas"



  • Hay @anshpalash ,

    Estos son los pasos que puede seguir:

    1. En Power query, Agregue columna – Columna de índice – Desde 1.

    vyangliumsft_0-1631237955462.png

    2. Cree una columna calculada.

    rank = RANKX(FILTER(ALL('Table'),'Table'[Part ]=EARLIER('Table'[Part ])),'Table'[Index],,ASC)

    3. Crear tabla calculada.

    Table 2 =
    SUMMARIZE('Table','Table'[Part ],
    "Location",CALCULATE(MAX('Table'[Value]),FILTER(ALL('Table'),[Part ]=EARLIER('Table'[Part ])&&'Table'[Index]=MIN('Table'[Index]))),
    "Reject",CALCULATE(MAX('Table'[Value]),FILTER(ALL('Table'),[Part ]=EARLIER('Table'[Part ])&&'Table'[Index]>MIN('Table'[Index])&&'Table'[Index]<MAX('Table'[Index]))),
    "ID",CALCULATE(MAX('Table'[Value]),FILTER(ALL('Table'),[Part ]=EARLIER('Table'[Part ])&&'Table'[Index]=MAX('Table'[Index]))))

    4. Resultado:

    vyangliumsft_1-1631237955462.png

    Saludos

    Liu Yang

    Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente