Forum Discussion
Combinar columnas en 1
Tengo un conjunto de datos. Necesito combinar de alguna manera el "GIC" en una columna y el "PE" en otra columna para poder meterlos en slicers y filtrarlos. Pude transponer, pero no me permite transponer el GIC y el PE por separado en power query. Buscando algunas soluciones. Los valores "1" y "0" de esos valores son básicamente "verdadero" o "falso".
| ID de cliente | Estado | Ventas | GIC: Hipertensión | GIC: Cáncer | GIC: Obesidad | Educación física: Reemplazo de rodilla | PE: Finanzas | PE: Sociales |
| 1111 | 350 | 1 | 0 | 1 | 0 | 1 | 0 | |
| 2222 | 500 | 0 | 1 | 0 | 1 | 0 | 1 | |
| 3333 | 200 | 1 | 0 | 0 | 1 | 0 | 0 |
6 Replies
- Syndicate_Admin
Administrator
@griffinst Lo que puedes hacer es duplicar tu consulta. En una consulta, elimina las columnas de PE y despivota. En la otra consulta, elimina las columnas GIC y despivota. Luego añade las tablas juntas.
- Syndicate_Admin
Administrator
Hola @griffinst
Necesitas despivotar aquí en lugar de transponer:
En Power Query, selecciona todas las columnas que quieres mantener fijas y luego selecciona 'despivotar otras columnas'
Selecciona la columna 'Atributo' y luego en la pestaña principal selecciona 'Dividir columna por delimitador'
Luego, dividido por dos puntos, delimitador más a la izquierda
Obtienes 2 columnas nuevas, llama a Attribute.1 "Category" y Attribute.2 "Condition".
Cierra y solicita.
Ahora puedes añadir un filtro visual a nivel de Valor=1 (o filtrar los 0s en Power Consulty) y un segmentador de categorías para mostrar tus resultados.
--------------------------------
Espero que esto ayude, por favor dadme kudos y marcad como solucionado si es así.
Conéctate conmigo en LinkedIn.
Suscríbete a mi Canal de YouTube ¡para contenido relacionado con Fabric/Power Platform!
- Syndicate_Admin
Administrator
@GeraldGEmerick. Creo que podría funcionar, pero creo que necesito una fusión en lugar de un añadido. La columna dividida funcionó, pero no consigo los resultados que necesito. Estoy bastante seguro de que necesito columnas de "GIC" y "PE" para filtrar los datos correctamente. Así, un usuario puede seleccionar un filtro GIC y un filtro PE, y ambos filtrarán el conjunto de datos hasta las personas que cumplen ambos criterios.
ver la captura de pantalla más abajo... Necesito que los valores de la "categoría" sean columnas separadas con valores de "Cat_Detail" y luego el correspondiente "Valor". Es decir... Columna "Brecha en la atención" y columna "Brecha en el valor de la atención". y lo mismo para "incontrolado...", y prevenible... Gracias por cualquier ayuda que podáis darme.
- Syndicate_Admin
Administrator
Hola,
Este código M en Power Query funciona
let Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer ID", Int64.Type}, {"State", type any}, {"Sales", Int64.Type}, {"GIC: Hypertension", Int64.Type}, {"GIC: Cancer", Int64.Type}, {"GIC: Obesity", Int64.Type}, {"PE: Knee Replacement", Int64.Type}, {"PE: Financial", Int64.Type}, {"PE: Social", Int64.Type}}), #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Customer ID", "State", "Sales"}, "Attribute", "Value"), #"Split Column by Delimiter" = Table.SplitColumn(#"Unpivoted Other Columns", "Attribute", Splitter.SplitTextByDelimiter(": ", QuoteStyle.Csv), {"Attribute.1", "Attribute.2"}) in #"Split Column by Delimiter"Espero que esto ayude.
- Syndicate_Admin
Administrator
Hola @griffinst
No estoy seguro de cuál es tu resultado esperado porque no publicaste el resultado esperado, pero prueba esto:
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMgQCJR0lIDI2NQCSIA4mHasTrWQEBBCVpgYGWFWBaJBKYyCAqDQyQJZFZcfGAgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Customer ID" = _t, State = _t, Sales = _t, #"GIC: Hypertension" = _t, #"GIC: Cancer" = _t, #"GIC: Obesity" = _t, #"PE: Knee Replacement" = _t, #"PE: Financial" = _t, #"PE: Social" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer ID", Int64.Type}, {"State", type text}, {"Sales", Int64.Type}, {"GIC: Hypertension", Int64.Type}, {"GIC: Cancer", Int64.Type}, {"GIC: Obesity", Int64.Type}, {"PE: Knee Replacement", Int64.Type}, {"PE: Financial", Int64.Type}, {"PE: Social", Int64.Type}}), #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 0, 1, Int64.Type), #"Added Custom" = Table.AddColumn(#"Added Index", "PE", each Table.FromColumns( { // Column names List.Select(Table.ColumnNames(#"Added Index"), each Text.StartsWith(_, "PE:")), // Values for the current row List.Transform( List.Select(Table.ColumnNames(#"Added Index"), each Text.StartsWith(_, "PE:")), (col) => Record.Field(_, col) ) }, {"PE", "PE Value"} )), #"Added Custom1" = Table.AddColumn(#"Added Custom", "GIC", each Table.FromColumns( { // Column names List.Select(Table.ColumnNames(#"Added Index"), each Text.StartsWith(_, "GIC:")), // Values for the current row List.Transform( List.Select(Table.ColumnNames(#"Added Index"), each Text.StartsWith(_, "GIC:")), (col) => Record.Field(_, col) ) }, {"GIC", "GIC Value"} )), #"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"GIC: Hypertension", "GIC: Cancer", "GIC: Obesity", "PE: Knee Replacement", "PE: Financial", "PE: Social"}), #"Added Custom2" = Table.AddColumn(#"Removed Columns", "Custom", each let PE_Table = Record.Field(_, "PE"), GIC_Table = Record.Field(_, "GIC") in Table.FromColumns( { Table.Column(PE_Table, "PE"), Table.Column(PE_Table, "PE Value"), Table.Column(GIC_Table, "GIC"), Table.Column(GIC_Table, "GIC Value") }, {"PE", "PE Value", "GIC", "GIC Value"} )), #"Removed Columns1" = Table.RemoveColumns(#"Added Custom2",{"PE", "GIC"}), #"Expanded Custom" = Table.ExpandTableColumn(#"Removed Columns1", "Custom", {"PE", "PE Value", "GIC", "GIC Value"}, {"PE", "PE Value", "GIC", "GIC Value"}), #"Replaced Value" = Table.ReplaceValue(#"Expanded Custom","PE: ","",Replacer.ReplaceText,{"PE"}), #"Replaced Value1" = Table.ReplaceValue(#"Replaced Value","GIC: ","",Replacer.ReplaceText,{"GIC"}), #"Changed Type1" = Table.TransformColumnTypes(#"Replaced Value1",{{"PE Value", Int64.Type}, {"GIC Value", Int64.Type}}) in #"Changed Type1" - Syndicate_Admin
Administrator
Hola @griffinst,
Gracias @danextian @wardy912 @GeraldGEmerick y @Ashish_Mathur por vuestras respuestas a la consulta.
Como aún no hemos recibido respuesta tuya, me gustaría confirmar si has resuelto este problema con éxito o si necesitas más ayuda.
Si aún tienes alguna pregunta o necesitas más apoyo, no dudes en decírnoslo.Estamos más que encantados de seguir ayudándote.