Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Anonymous
Not applicable

Apilar identificadores secundarios en identificadores de padre en una tabla PowerBi

Hola expertos

Quiero combinar dos tablas donde una tabla tiene identificadores primarios y la otra tabla con identificadores secundarios. Esto es para mostrar los valores duplicados que tenemos bajo un identificador primario. A continuación se muestra un ejemplo de la tabla con identificadores primarios.

Identificación del padreNombreApellido
15515EstrellaPeters
15516JanetRoders
15517LukeRoberts

Esta es la tabla de identificación secundaria

Identificación infantilIdentificación del padreNombreApellido
1441515515EstrellaPete
1445615515EstrellaPeters
1449815516JanetMontó
1449915516JanetRoder
1450115517LukeRoberts

Quiero crear una tabla que apile los identificadores secundarios bajo los identificadores de los padres como se muestra a continuación.

ID de nombreNombreApellido
15515EstrellaPeters
14415EstrellaPete
14456EstrellaPeters
15516JanetRoders
14498JanetMontó
14499JanetRoder
15517LukeRoberts

¿Espero que alguien pueda guiarme con esto? Muchas gracias de antemano.

Salud

1 ACCEPTED SOLUTION

No @dinetrsp

Cree una nueva consulta a partir de la tabla "parent id",

"Agregar columna de índice"->"Cambiar nombre columnas->agregar otra columna de índice

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQ1NTRV0lEKLknNyUkEMgJSS1KLipVidSByZkAhr8S81BIgHZSfgixlDhTyKc1OBcskpRaVAKViAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Parent ID" = _t, #"First Name" = _t, #"Last Name" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Parent ID", Int64.Type}, {"First Name", type text}, {"Last Name", type text}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1),
    n=Table.SelectColumns(#"Added Index",{"Parent ID","First Name","Last Name","Index"}),
    #"Renamed Columns" = Table.RenameColumns(n,{{"Parent ID", "Name ID"}}),
    #"Added Custom" = Table.AddColumn(#"Renamed Columns", "Index_2", each 1)
in
    #"Added Custom"

A continuación, agregue los pasos en la tabla "parent id",

Agregar consultas de > de columnas de índice desde la tabla secundaria >agregar una consulta personalizada de > de columnas

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQ1NTRV0lEKLknNyUkEMgJSS1KLipVidSByZkAhr8S81BIgHZSfgixlDhTyKc1OBcskpRaVAKViAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Parent ID" = _t, #"First Name" = _t, #"Last Name" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Parent ID", Int64.Type}, {"First Name", type text}, {"Last Name", type text}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1),
    #"Merged Queries" = Table.NestedJoin(#"Added Index", {"Parent ID"}, #"child table", {"Parent ID"}, "child table", JoinKind.RightOuter),
    #"Expanded child table" = Table.ExpandTableColumn(#"Merged Queries", "child table", {"Child ID", "First Name", "Last Name"}, {"child table.Child ID", "child table.First Name", "child table.Last Name"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded child table",{"Parent ID", "First Name", "Last Name"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"child table.Child ID", "Name ID"}, {"child table.First Name", "First Name"}, {"child table.Last Name", "Last Name"}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns",{"Name ID", "First Name", "Last Name", "Index"}),
    #"Added Custom" = Table.AddColumn(#"Reordered Columns", "Index_2", each 2),
    #"Appended Query" = Table.Combine({#"Added Custom", Query1}),
    #"Sorted Rows" = Table.Sort(#"Appended Query",{{"Index", Order.Ascending}, {"Index_2", Order.Ascending}})
in
    #"Sorted Rows"

Puede descargar mi archivo y ver los detalles de cada paso.

Saludos
Maggie
Equipo de apoyo a la comunidad _ Maggie Li
Si esta publicación ayuda, entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

8 REPLIES 8
v-juanli-msft
Community Support
Community Support

Hola @dinetrsp

Para obtener el resultado a continuación, creo consultas en la consulta de energía.

Capture4.JPG

Si usted está interesado con mi solución, por favor hágamelo saber, le explicaría con detalles.

Saludos
Maggie
Equipo de Apoyo Comunitario _ Maggie 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.

Anonymous
Not applicable

Hola @v-juanli-msft esto es genial. Le agradecería que explicara la solución. Muchas gracias por compartir el archivo también.

¡Salud!

No @dinetrsp

Cree una nueva consulta a partir de la tabla "parent id",

"Agregar columna de índice"->"Cambiar nombre columnas->agregar otra columna de índice

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQ1NTRV0lEKLknNyUkEMgJSS1KLipVidSByZkAhr8S81BIgHZSfgixlDhTyKc1OBcskpRaVAKViAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Parent ID" = _t, #"First Name" = _t, #"Last Name" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Parent ID", Int64.Type}, {"First Name", type text}, {"Last Name", type text}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1),
    n=Table.SelectColumns(#"Added Index",{"Parent ID","First Name","Last Name","Index"}),
    #"Renamed Columns" = Table.RenameColumns(n,{{"Parent ID", "Name ID"}}),
    #"Added Custom" = Table.AddColumn(#"Renamed Columns", "Index_2", each 1)
in
    #"Added Custom"

A continuación, agregue los pasos en la tabla "parent id",

Agregar consultas de > de columnas de índice desde la tabla secundaria >agregar una consulta personalizada de > de columnas

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQ1NTRV0lEKLknNyUkEMgJSS1KLipVidSByZkAhr8S81BIgHZSfgixlDhTyKc1OBcskpRaVAKViAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Parent ID" = _t, #"First Name" = _t, #"Last Name" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Parent ID", Int64.Type}, {"First Name", type text}, {"Last Name", type text}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1),
    #"Merged Queries" = Table.NestedJoin(#"Added Index", {"Parent ID"}, #"child table", {"Parent ID"}, "child table", JoinKind.RightOuter),
    #"Expanded child table" = Table.ExpandTableColumn(#"Merged Queries", "child table", {"Child ID", "First Name", "Last Name"}, {"child table.Child ID", "child table.First Name", "child table.Last Name"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded child table",{"Parent ID", "First Name", "Last Name"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"child table.Child ID", "Name ID"}, {"child table.First Name", "First Name"}, {"child table.Last Name", "Last Name"}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns",{"Name ID", "First Name", "Last Name", "Index"}),
    #"Added Custom" = Table.AddColumn(#"Reordered Columns", "Index_2", each 2),
    #"Appended Query" = Table.Combine({#"Added Custom", Query1}),
    #"Sorted Rows" = Table.Sort(#"Appended Query",{{"Index", Order.Ascending}, {"Index_2", Order.Ascending}})
in
    #"Sorted Rows"

Puede descargar mi archivo y ver los detalles de cada paso.

Saludos
Maggie
Equipo de apoyo a la comunidad _ Maggie Li
Si esta publicación ayuda, entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Anonymous
Not applicable

Muchas gracias por compartir su solución @v-juanli-msft . Apreciamos tu tiempo y esfuerzo 🙂

kentyler
Solution Sage
Solution Sage

Creo que una solución que simplificará su problema sería crear una fila para cada padre que hace que el padre también sea el hijo de sí mismo.

15515 0 Estrella Pete
14456 15515 Estrella Peters
14456 15515 Estrella Peters

Puede hacerlo como parte del proceso ETL. Imagino que también podríahacerlo en M como una forma de transformar la mesa a medida que la carga. Si necesita ayuda con cualquiera de las dos opciones, háganoslo saber.





Did this post answer your question? Mark it as a solution so others can find it!

Help when you know. Ask when you don't!




Join the conversation at We Talk BI find out more about me at Slow BI


Anonymous
Not applicable

Muchas gracias @kentyler . Necesito su ayuda con ambas opciones.

¿Quieres hacer un recurso compartido de pantalla mañana por la mañana? Estoy en la zona PST y estoy disponible desde las 7 de la mañana hasta las 5 de la noche. Si es así, envíeme un correo electrónico : ken@8thfold.com y un buen momento para hablar y le enviaré una invitación ZOOM.





Did this post answer your question? Mark it as a solution so others can find it!

Help when you know. Ask when you don't!




Join the conversation at We Talk BI find out more about me at Slow BI


Anonymous
Not applicable

Gracias @kentyler por su respuesta. Me comunicaré con usted a su debido tiempo.

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors