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 a todos,
Estoy tratando de averiguar cómo obtener filas relacionadas de datos en columnas separadas. Para explicarlo, consulte la primera tabla a continuación. Así es como mis datos están estructurados actualmente.
Houshold ref | Ref # | Primero | Última | Edad | Fecha en que el niño menor de 18 años comenzó la escuela |
V1865 | 1865 | Padres 1 | Nombre | 33 | |
V1865 | 1865 | Padre 2 | Nombre | 24 | |
V1865 | 1865 | Niño 1 | Nombre | 3 | 30/01/2019 00:00 |
V1865 | 1865 | Niño 2 | Nombre | 8 | 04/02/2019 00:00 |
Lo que estoy tratando de hacer es estructurar estos datos para realizar una combinación de correspondencia para cada padre (no para los hijos). Así que pensé que necesito tener todos los datos relevantes para cada padre en la fila de ese padre. El problema es que los niños dentro de la familia son datos relevantes para cada padre, por lo que necesito transponer varias columnas. Por ejemplo, para cada padre necesito saber cuándo cada niño comenzó la escuela, así como su nombre y edad. Así que mi resultado (creo) tendrá que verse así:
Houshold ref | Ref # | Primero | Última | Edad | Nombre del niño 1 | Nombre del niño 2 | Niño 1 Edad | Niño 2 Ag2 | Fecha De inicio de la escuela del niño 1 | Fecha en que el niño 2 comenzó la escuela |
V1865 | 1865 | Padres 1 | Nombre | 33 | Niño 1 | Niño 2 | 3 | 8 | 30/01/2019 00:00 | 04/02/2019 00:00 |
V1865 | 1865 | Padre 2 | Nombre | 24 | Niño 1 | Niño 2 | 3 | 8 | 30/01/2019 00:00 | 04/02/2019 00:00 |
Sin embargo, esto parece demasiado complicado.
Naturalmente, los hogares también pueden tener más de 2 niños....
¿Algún consejo sobre la mejor manera de que yo haga esto?
Solved! Go to Solution.
Hola @dutifuldax ,
Todas las acciones son como los siguientes códigos en editores avanzados y te ayudaré a entenderlo:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCjO0MDNV0lGCUgGJRal5JcUKhkC2X2JuKpAyNgYSSrE6ONUaIdQameBQ65yRmZOCYioIG+gbGOobGRhaKhgYWBkY4NaIZIUFEBuY6BsYoWiMBQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Houshold ref" = _t, #"Ref#" = _t, First = _t, Last = _t, Age = _t, #"Date child under 18 started school" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Houshold ref", type text}, {"Ref#", Int64.Type}, {"First", type text}, {"Last", type text}, {"Age", Int64.Type}, {"Date child under 18 started school", type text}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each [Age] > 18),
#"Merged Queries" = Table.NestedJoin(#"Filtered Rows", {"Houshold ref"},Table.SelectRows(#"Changed Type", each [Age] <= 18), {"Houshold ref"}, "Child", JoinKind.LeftOuter),
#"Added Custom" = Table.AddColumn(#"Merged Queries", "Custom", each let #"Removed Columns" = Table.RemoveColumns([Child],{"Houshold ref", "Ref#", "Last"}),
#"Added Index" = Table.AddIndexColumn(#"Removed Columns", "Index", 0, 1),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Added Index", {"Index"}, "Attribute", "Value"),
#"Removed Columns1" = Table.RemoveColumns(#"Unpivoted Other Columns",{"Index"}),
#"Transposed Table" = Table.Transpose(#"Removed Columns1"),
#"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
#"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"First", type text}, {"Age", Int64.Type}, {"Date child under 18 started school", type text}, {"First_1", type text}, {"Age_2", Int64.Type}, {"Date child under 18 started school_3", type datetime}})
in #"Changed Type1"),
#"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"First", "Age", "Date child under 18 started school", "First_1", "Age_2", "Date child under 18 started school_3"}, {"Custom.First", "Custom.Age", "Custom.Date child under 18 started school", "Custom.First_1", "Custom.Age_2", "Custom.Date child under 18 started school_3"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"Child"})
in
#"Removed Columns"
Todos los pasos se pueden ver en Pasos aplicados en el Editor de Power Query. En adición, aquí está el archivo de ejemplo espera ayudarle: PBIX
Mejores looks,
Yingjie Li
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @dutifuldax ,
Todas las acciones son como los siguientes códigos en editores avanzados y te ayudaré a entenderlo:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCjO0MDNV0lGCUgGJRal5JcUKhkC2X2JuKpAyNgYSSrE6ONUaIdQameBQ65yRmZOCYioIG+gbGOobGRhaKhgYWBkY4NaIZIUFEBuY6BsYoWiMBQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Houshold ref" = _t, #"Ref#" = _t, First = _t, Last = _t, Age = _t, #"Date child under 18 started school" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Houshold ref", type text}, {"Ref#", Int64.Type}, {"First", type text}, {"Last", type text}, {"Age", Int64.Type}, {"Date child under 18 started school", type text}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each [Age] > 18),
#"Merged Queries" = Table.NestedJoin(#"Filtered Rows", {"Houshold ref"},Table.SelectRows(#"Changed Type", each [Age] <= 18), {"Houshold ref"}, "Child", JoinKind.LeftOuter),
#"Added Custom" = Table.AddColumn(#"Merged Queries", "Custom", each let #"Removed Columns" = Table.RemoveColumns([Child],{"Houshold ref", "Ref#", "Last"}),
#"Added Index" = Table.AddIndexColumn(#"Removed Columns", "Index", 0, 1),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Added Index", {"Index"}, "Attribute", "Value"),
#"Removed Columns1" = Table.RemoveColumns(#"Unpivoted Other Columns",{"Index"}),
#"Transposed Table" = Table.Transpose(#"Removed Columns1"),
#"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
#"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"First", type text}, {"Age", Int64.Type}, {"Date child under 18 started school", type text}, {"First_1", type text}, {"Age_2", Int64.Type}, {"Date child under 18 started school_3", type datetime}})
in #"Changed Type1"),
#"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"First", "Age", "Date child under 18 started school", "First_1", "Age_2", "Date child under 18 started school_3"}, {"Custom.First", "Custom.Age", "Custom.Date child under 18 started school", "Custom.First_1", "Custom.Age_2", "Custom.Date child under 18 started school_3"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"Child"})
in
#"Removed Columns"
Todos los pasos se pueden ver en Pasos aplicados en el Editor de Power Query. En adición, aquí está el archivo de ejemplo espera ayudarle: PBIX
Mejores looks,
Yingjie Li
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Muchas gracias por tu apoyo, Yingjie.
Creo que puedo seguir la mayor parte de su solución, así que voy a tratar de replicar hoy. Buena razón para obtener más información sobre la codificación en el editor 🙂
No está seguro de cómo está identificando al padre y al niño desde Name.
Si hay una manera de hacerlo, consideraría la posibilidad de crear un duplicado y filtrar una tabla para el padre y otra para el hijo.
Una tabla única de ref debe ayudar a crear la relación entre las tablas y puede colocarlas en un objeto visual de matriz.
Una vez más sólo un pensamiento rápido. Necesitará ver la muestra de datos para encontrar una solución.
Gracias por su respuesta.
Lo sentimos, debería haber mencionado - las familias están vinculadas con un número de referencia de la familia. Así que delinearé a los niños por edad. Probaré las dos mesas y veré si una matriz funcionará.
@dutifuldax , Consulte, si esto puede ayudar
https://yodalearning.com/tutorials/power-query-helps-transposing-data/
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 |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |