1 votos

Convertir datos de celda de varias líneas en filas

Necesito convertir los datos de texto multilinea en una celda a filas individuales. Además, hay más información correspondiente a los datos de la celda en un formato similar, por lo que la nueva fila debe tener también eso en cuenta.

Forma actual de los datos:

Forma actual de los datos

Forma esperada de los datos:

Forma esperada de los datos

Leí las instrucciones para asegurarme de que el texto en las imágenes esté disponible como texto dentro del cuerpo de la pregunta, ya que el texto es significativo, estoy trabajando en convertirlo en una tabla y editaré esta pregunta una vez que esté hecho.

0voto

FlexYourData Puntos 36

Así es como se hace en PowerQuery.

Mueva id y total a la izquierda, seleccione id y total, luego use Transformar>Desvincular otras columnas para obtener esto:

introducir descripción de la imagen aquí

Seleccione la columna Valor, haga clic con el botón derecho y use Dividir la columna por delimitador, configurado de esta manera:

introducir descripción de la imagen aquí

Ahora tiene esto:

introducir descripción de la imagen aquí

Seleccione id, total y Atributo, luego use Transformar>Desvincular otras columnas. Debería tener esto ahora:

introducir descripción de la imagen aquí

Seleccione Atributo y use Transformar>Columna de pivote, configurado de esta manera:

introducir descripción de la imagen aquí

Debería tener esto ahora:

introducir descripción de la imagen aquí

Elimine / cambie / reposicione las columnas según corresponda, luego use Inicio>Cerrar y cargar para volver a colocar los datos en el libro de trabajo. He renombrado y cambiado la columna Atributo.1 para mostrar un índice dentro de cada grupo (¡podría ser útil más adelante!):

introducir descripción de la imagen aquí

Mis datos fuente están en una tabla llamada Tabla1. Aquí está el texto completo del Editor Avanzado:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"id", type text}, {"quantity", type text}, {"total", type number}, {"item price", type text}, {"article number", type text}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Changed Type",{"id", "total", "quantity", "item price", "article number"}),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Reordered Columns", {"id", "total"}, "Attribute", "Value"),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Unpivoted Other Columns", "Value", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv), {"Value.1", "Value.2", "Value.3"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Value.1", type number}, {"Value.2", type number}, {"Value.3", type number}}),
    #"Unpivoted Other Columns1" = Table.UnpivotOtherColumns(#"Changed Type1", {"id", "total", "Attribute"}, "Attribute.1", "Value"),
    #"Pivoted Column" = Table.Pivot(#"Unpivoted Other Columns1", List.Distinct(#"Unpivoted Other Columns1"[Attribute]), "Attribute", "Value"),
    #"Renamed Columns" = Table.RenameColumns(#"Pivoted Column",{{"Attribute.1", "index_in_id"}}),
    #"Replaced Value" = Table.ReplaceValue(#"Renamed Columns","Value.","",Replacer.ReplaceText,{"index_in_id"}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Replaced Value",{{"index_in_id", Int64.Type}})
in
    #"Changed Type2"

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X