Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola
Estoy intentando combinar un número de columnas divididas (mediante un delimitador) en varias columnas (basadas en sus encabezados originales) en el Editor de consultas.
Así es como se ve la tabla original antes de dividir:
Artículo | Nombre del problema | Distribución de problemas | Motivo de la cuestión | Completado |
Artículo 1 | CON; CON; HW1; Propiedad HW2 | Nombre1; Nombre2; Nombre 3; Nombre4 | Para información; Para comentarios; Para comentarios; Para la validación | 31.08.2020; Ninguno; Ninguno; Ninguno |
Tema 2 | Null | Null | Null | Null |
Esta es la tabla una vez dividida por delimitador:
Artículo | Nombre del problema.1 | Nombre del problema.2 | Nombre del problema.3 | Nombre del problema.4 | Distribución de la emisión.1 | Distribución del problema.2 | Distribución de la emisión.3 | Distribución de la emisión.4 | Motivo del problema.1 | Motivo del problema.2 | Motivo del problema.3 | Motivo del problema.4 | Completado.1 | Completado.2 | Completado.3 | Completado.4 |
Artículo 1 | Con | Con | HW1 | HW2 | Name.1 | Name.2 | Name.3 | Name.4 | Para obtener información | Para comentarios | Para comentarios | Para la validación | 31.08.2020 | Ninguno | Ninguno | Ninguno |
Tema 2 | Null | Null | Null | Null | Null | Null | Null | Null | Null | Null | Null | Null | Null | Null | Null | Null |
Aquí está la tabla que espero lograr en el Editor de consultas:
Artículo | Nombre del problema | Distribución de problemas | Motivo de la cuestión | Completado |
Tema 1 | Con | Nombre1 | Para obtener información | 2008.2020 |
Tema 1 | Con | Nombre2 | Para comentarios | Ninguno |
Artículo 1 | HW1 | Nombre3 | Para comentarios | Ninguno |
Artículo 1 | HW2 | Nombre4 | Para la validación | Ninguno |
Tema 2 | Null | Null | Null | Null |
Tema 2 | etcetera... |
Como alternativa, ¿hay una expresión DAX que pueda usar para devolver varias filas en una salida de tabla como se ha indicado anteriormente?
Muchas gracias por su ayuda.
Solved! Go to Solution.
Desafortunadamente, no puedo añadir un archivo directamente al foro. Sólo puedo mediante el uso de algún alojamiento de archivos.
Con el conjunto de datos, aplique este código en Power Query.
let
Source = [your source],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Item", type text}, {"Issue Name", type text}, {"Issue Distribution", type text}, {"Reason for Issue", type text}, {"Completed", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Issue Name Split", each Text.Split([Issue Name],";")),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Issue Distribution Split", each Text.Split([Issue Distribution],";")),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "Reason Split", each Text.Split([Reason for Issue],";")),
#"Added Custom3" = Table.AddColumn(#"Added Custom2", "Completed Split", each Text.Split([Completed],";")),
#"Added Custom4" = Table.AddColumn(#"Added Custom3", "New Table", each Table.FromColumns({[Issue Name Split],[Issue Distribution Split],[Reason Split],[Completed Split]})),
#"Expanded New Table" = Table.ExpandTableColumn(#"Added Custom4", "New Table", {"Column1", "Column2", "Column3", "Column4"}, {"New Table.Column1", "New Table.Column2", "New Table.Column3", "New Table.Column4"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded New Table",{"Issue Name", "Issue Distribution", "Reason for Issue", "Completed", "Issue Name Split", "Issue Distribution Split", "Reason Split", "Completed Split"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"New Table.Column1", "Issue Name"}, {"New Table.Column2", "Issue Distribution"}, {"New Table.Column3", "Reason for Issue"}, {"New Table.Column4", "Completed"}})
in
#"Renamed Columns"
O, si lo desea, puedo agregar este archivo a alguna unidad. hágamelo saber.
_______________
Si ayudé, por favor acepte la solución y dar felicitaciones! 😀
Hola, algunos han señalado que usted necesita para despivot todos los demás que "artículo".
Eso es correcto, pero no la solución completa. Después de eso, debe dividir el atributo por "." a y otra vez pivotar por este índice. Entonces obtienes tu resultado.
Por favor, encuentre el código a continuación.
Por favor, marque como solución si esa es la respuesta correcta a su pregunta.
Alexander
------------
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8ixJzTVU0lFy9veEkx7hhmDSCEj6Jeam6hnCGHARYxjDBMhwyy9S8MxLyy/KTSzJzM+Dijjn5+am5pVg5YUl5mSmwBQbG+oZWOgZGRgZgAzNz0tFo2J1IM4EWZ5XmpNDAYUFxcYCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Item = _t, #"Issue Name.1" = _t, #"Issue Name.2" = _t, #"Issue Name.3" = _t, #"Issue Name.4" = _t, #"Issue Distribution.1" = _t, #"Issue Distribution.2" = _t, #"Issue Distribution.3" = _t, #"Issue Distribution.4" = _t, #"Reason For Issue.1" = _t, #"Reason For Issue.2" = _t, #"Reason For Issue.3" = _t, #"Reason For Issue.4" = _t, Completed.1 = _t, Completed.2 = _t, Completed.3 = _t, Completed.4 = _t]), #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"Item"}, "Attribute", "Value"), #"Split Column by Delimiter" = Table.SplitColumn(#"Unpivoted Other Columns", "Attribute", Splitter.SplitTextByDelimiter(".", QuoteStyle.Csv), {"Header", "Index"}), #"Pivoted Column" = Table.Pivot(#"Split Column by Delimiter", List.Distinct(#"Split Column by Delimiter"[Header]), "Header", "Value"), #"Removed Columns" = Table.RemoveColumns(#"Pivoted Column",{"Index"}) in #"Removed Columns"
Hola
Gracias por su respuesta.
Unpivitong las columnas quitan todo el valor NULL (Elementos sin valor), cuando pivoto las columnas Attribute esto produce errores. ¿Hay alguna manera de evitar esto?
Muchas gracias
Eso es correcto. Debe reemplazar los valores nulos por "" valores vacíos antes de dividir las columnas.
Por favor, marque como solución si esa es la respuesta correcta a su pregunta.
Alexander
Esta es la tabla una vez dividida por delimitador:
Artículo | Nombre del problema.1 | Nombre del problema.2 | Nombre del problema.3 | Nombre del problema.4 | Distribución de la emisión.1 | Distribución del problema.2 | Distribución de la emisión.3 | Distribución de la emisión.4 | Motivo del problema.1 | Motivo del problema.2 | Motivo del problema.3 | Motivo del problema.4 | Completado.1 | Completado.2 | Completado.3 | Completado.4 |
Artículo 1 | Con | Con | HW1 | HW2 | Name.1 | Name.2 | Name.3 | Name.4 | Para obtener información | Para comentarios | Para comentarios | Para la validación | 31.08.2020 | Ninguno | Ninguno | Ninguno |
Tema 2 | Null | Null | Null | Null | Null | Null | Null | Null | Null | Null | Null | Null | Null | Null |
Después del paso anterior . Haga clic derecho en"Elementos" y haga clic en"Despivot Otras Columnas" y obtendrá los resultados deseados.
Proud to be a Super User!
Hola @EllieSim ,
Puede utilizar la función Table.Split en Power Query. Preparé el archivo para usted con la solución:
_______________
Si ayudé, por favor acepte la solución y dar felicitaciones! 😀
Hola
No puedo descargar el archivo por alguna razón. ¿Es posible subirlo aquí en su lugar?
Muchas gracias 🙂
Desafortunadamente, no puedo añadir un archivo directamente al foro. Sólo puedo mediante el uso de algún alojamiento de archivos.
Con el conjunto de datos, aplique este código en Power Query.
let
Source = [your source],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Item", type text}, {"Issue Name", type text}, {"Issue Distribution", type text}, {"Reason for Issue", type text}, {"Completed", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Issue Name Split", each Text.Split([Issue Name],";")),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Issue Distribution Split", each Text.Split([Issue Distribution],";")),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "Reason Split", each Text.Split([Reason for Issue],";")),
#"Added Custom3" = Table.AddColumn(#"Added Custom2", "Completed Split", each Text.Split([Completed],";")),
#"Added Custom4" = Table.AddColumn(#"Added Custom3", "New Table", each Table.FromColumns({[Issue Name Split],[Issue Distribution Split],[Reason Split],[Completed Split]})),
#"Expanded New Table" = Table.ExpandTableColumn(#"Added Custom4", "New Table", {"Column1", "Column2", "Column3", "Column4"}, {"New Table.Column1", "New Table.Column2", "New Table.Column3", "New Table.Column4"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded New Table",{"Issue Name", "Issue Distribution", "Reason for Issue", "Completed", "Issue Name Split", "Issue Distribution Split", "Reason Split", "Completed Split"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"New Table.Column1", "Issue Name"}, {"New Table.Column2", "Issue Distribution"}, {"New Table.Column3", "Reason for Issue"}, {"New Table.Column4", "Completed"}})
in
#"Renamed Columns"
O, si lo desea, puedo agregar este archivo a alguna unidad. hágamelo saber.
_______________
Si ayudé, por favor acepte la solución y dar felicitaciones! 😀
¿Sus datos son coherentes? Quiero decir que el número de valores delimados son fijos & hasta 4 ? ¿Correcto?
Proud to be a Super User!
@EllieSim, el formato no muy claro, ver si esto puede ayudar a
https://www.tutorialgateway.org/how-to-split-columns-in-power-bi/
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |