cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
magus
Helper I
Helper I

Combinación de archivos con valor común

Hola

Estoy usando un archivo TXT como datos de origen para analizar la información sobre los Custromers. Mi valor único es un ID de cliente y el resto de las columnas muestran información sobre esos clientes.

Después de cargar el archivo TXT en Power BI, obtengo el archivo que tiene la siguiente estructura:

TXT.PNG

Básicamente veo la información de un ID de cliente dividido en dos filas: por ejemplo para el primer cstr veo el número de entrega en la primera fila de la segunda columna, pero la cantidad de pedido aparece en la segunda fila de la tercera columna. Lo que tengo que hacer es comprimir los datos de dos filas en una sola fila, para que pueda ver los datos de un ID de Cutomer que se muestran en la misma fila. Espero que me explique:)

Necesitaré que este informe se actualice semanalmente, así que estoy tratando de encontrar una manera de automatizarlo. Lo que en primer lugar vino información mi mente fue llenar la columna de ID de cliente, luego dividir el archivo en dos: uno con filas pares y el segundo con ni siquiera filas, y luego combinar estos dos archivos con EL ID de cliente. Por desgracia, no funciona - No estoy seguro de por qué la fusión partis no funciona, pero como resultado obtengo un archivo de archivo con filas pares o desiguales. No el archivo que combina los dos.

¿Podrías ayudarme a solucionar este problema?

Saludos amables y gracias de antemano

Mago

1 ACCEPTED SOLUTION
Icey
Community Support
Community Support

Hola @magus ,

Intente undd Index columnas y unir la tabla consigo mismo:

fill.gif

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("pco9DoAgDAXgu7yZoa0t0FWMLk4mDoZw/2sIjK5O7ydfrWBiWTzFjIDjEtK99IYWKkYGmNJcA6qrSP/W01S2+yc0ItLIluOUbqk8H+mK1l4=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Customer ID" = _t, #"Delivery number" = _t, Column1.23 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer ID", Int64.Type}, {"Delivery number", type text}, {"Column1.23", Int64.Type}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index0", 0, 1),
    #"Added Index1" = Table.AddIndexColumn(#"Added Index", "Index1", 1, 1),
    #"Merged Queries" = Table.NestedJoin(#"Added Index1", {"Index1"}, #"Added Index1", {"Index0"}, "SecondNextRow", JoinKind.LeftOuter),
    #"Removed Columns" = Table.RemoveColumns(#"Merged Queries",{"Column1.23", "Index0", "Index1"}),
    #"Expanded SecondNextRow" = Table.ExpandTableColumn(#"Removed Columns", "SecondNextRow", {"Column1.23"}, {"Column1.23"}),
    #"Filtered Rows" = Table.SelectRows(#"Expanded SecondNextRow", each ([Customer ID] <> null))
in
    #"Filtered Rows"

Referencia: ¿Cómo desplazar las celdas hacia arriba o hacia abajo en Power BI?

Saludos

Icey

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido.

View solution in original post

4 REPLIES 4
Icey
Community Support
Community Support

Hola @magus ,

Intente undd Index columnas y unir la tabla consigo mismo:

fill.gif

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("pco9DoAgDAXgu7yZoa0t0FWMLk4mDoZw/2sIjK5O7ydfrWBiWTzFjIDjEtK99IYWKkYGmNJcA6qrSP/W01S2+yc0ItLIluOUbqk8H+mK1l4=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Customer ID" = _t, #"Delivery number" = _t, Column1.23 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer ID", Int64.Type}, {"Delivery number", type text}, {"Column1.23", Int64.Type}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index0", 0, 1),
    #"Added Index1" = Table.AddIndexColumn(#"Added Index", "Index1", 1, 1),
    #"Merged Queries" = Table.NestedJoin(#"Added Index1", {"Index1"}, #"Added Index1", {"Index0"}, "SecondNextRow", JoinKind.LeftOuter),
    #"Removed Columns" = Table.RemoveColumns(#"Merged Queries",{"Column1.23", "Index0", "Index1"}),
    #"Expanded SecondNextRow" = Table.ExpandTableColumn(#"Removed Columns", "SecondNextRow", {"Column1.23"}, {"Column1.23"}),
    #"Filtered Rows" = Table.SelectRows(#"Expanded SecondNextRow", each ([Customer ID] <> null))
in
    #"Filtered Rows"

Referencia: ¿Cómo desplazar las celdas hacia arriba o hacia abajo en Power BI?

Saludos

Icey

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido.

View solution in original post

NamishB
Post Prodigy
Post Prodigy

Hola @magus - Supongo que el reenvío de datos en dos columnas diferentes es porque puede tener Tab o varios espacios entre los valores?

¿Existe la posibilidad de convertir su archivo txt a CSV/Excel y esto debería caer en una columna cuando se carga en power BI?

Alternativamente, puede probar Transformar una vez en Power Query (Haga clic con el botón derecho en Rellenar columna1 y quite null del identificador de cliente) y lo hará automáticamente cada vez que cargue los datos.

Espero que esto ayude.

Salud

-Namish B

DataInsights
Super User II
Super User II

@magus,

Pruebe lo siguiente en Power Query:

1. Seleccione la columna Column1.23 y "Fill Up".

2. En la columna ID de cliente, filtre null.

Hola

Gracias por compartir sus ideas.

Desafortunadamente, esta solución no funcionó, ya que tengo valores nulos en el fila donde falta la información. Por ejemplo, compruebe la captura de pantalla de abajo, Si utilizo la función "rellenar" aquí, obtendré el valor 1 no sólo donde debe aparecer, sino también donde falta la información y debería tener el valor nulo:

Example.png

Espero haberme explicado.

Mago

Helpful resources

Announcements
PBI User Groups

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group!

MBAS on Demand

Microsoft Business Applications Summit sessions

On-demand access to all the great content presented by the product teams and community members! #MSBizAppsSummit #CommunityRocks

MBAS Attendee Badge

Claim Your Badge & Digital Swag!

Check out how to claim yours today!

Top Kudoed Authors