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

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.

Reply
DouglasBrito
Helper I
Helper I

Agregar una columna para varias filas basadas en un contenido de fila dinámica superior

Hola

Estoy trabajando con un archivo de instrucciones de tarjeta que tiene el diseño como diseño actual. Necesito ver si es posible llegar con el diseño deseado.

Básicamente, el nombre del titular de la tarjeta no se muestra en todas las líneas de transacción, viene como una fila de encabezado. Pero necesito tenerlo correctamente vinculado a las líneas de transacción.

Gracias
Diseño actual

John
Período Final,Fecha de contabilización,Fecha de Tran
111,222,333,444
111,222,333,444
111,222,333,444
Anna
Período Final,Fecha de contabilización,Fecha de Tran
111,222,333,444
111,222,333,444
111,222,333,444
111,222,333,444
Mathew
Período Final,Fecha de contabilización,Fecha de Tran
111,222,333,444
111,222,333,444
111,222,333,444
111,222,333,444
111,222,333,444
111,222,333,444


Salida deseada

Titular de la tarjeta, fin del período, fecha de publicación, fecha de tramo
Juan, 111,222,333,444
Juan,111,222,333,444
Juan,111,222,333,444
Anna, 111.222.333.444
Anna, 111.222.333.444
Anna, 111.222.333.444
Anna, 111.222.333.444
Mathew,111,222,333,444
Mathew,111,222,333,444
Mathew,111,222,333,444
Mathew,111,222,333,444
Mathew,111,222,333,444
Mathew,111,222,333,444

1 ACCEPTED SOLUTION
v-jingzhang
Community Support
Community Support

Hola @DouglasBrito

Es necesario realizar varios pasos para lograr este objetivo. Por favor, pruebe los pasos a continuación.

Supongamos que primero ya tiene una tabla como esta en el Editor de consultas:

11042.jpg

Reemplace los valores en blanco por null en Column2 y Column3: Transform -> Replace Values.

11043.jpg

Agregue una columna personalizada y use Rellenar para obtener los nombres de los titulares de la tarjeta para cada fila.

11044.jpg11045.jpg

Seleccione Columna2 y filtre las filas con el valor Fecha de registro y nulo.

11046.jpg

Por último, cambie el nombre de las columnas y reordenélas.

11047.jpg

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8srPyFPSUQKhWJ1opYDUosz8FAXXvBSgSEB+cUlmXrqCS2JJKpAbUpSYB2GDVBoaGgLFjIyMgKSxsTFJYo55eYl0txSbmG9iSUZq+aBwCoZYLAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}}),
    #"Replaced Value" = Table.ReplaceValue(#"Changed Type","",null,Replacer.ReplaceValue,{"Column2", "Column3"}),
    #"Added Custom" = Table.AddColumn(#"Replaced Value", "Custom", each if [Column2] = null and [Column3] = null and [Column1] <> null then [Column1] else null),
    #"Filled Down" = Table.FillDown(#"Added Custom",{"Custom"}),
    #"Filtered Rows" = Table.SelectRows(#"Filled Down", each ([Column2] = "222")),
    #"Renamed Columns" = Table.RenameColumns(#"Filtered Rows",{{"Column1", "Period End"}, {"Column2", "Posting Date"}, {"Column3", "Tran Date"}, {"Custom", "Card Holder"}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns",{"Card Holder", "Period End", "Posting Date", "Tran Date"})
in
    #"Reordered Columns"

Puede descargar el archivo .pbix para obtener más detalles. Espero que esto ayude.

Saludos

Equipo de apoyo a la comunidad _ Jing Zhang

Si este post ayuda,por favor considere Aceptarlo como la solución para ayudar a otros miembros a encontrarlo.

View solution in original post

4 REPLIES 4
DouglasBrito
Helper I
Helper I

Ola @Ashish_Mathur 

Thanks very much for your clever approach for this, it worked fine.  Sorry for the delay on my answer.

 

 

Gracias,

 

 

Douglas

De nada.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
v-jingzhang
Community Support
Community Support

Hola @DouglasBrito

Es necesario realizar varios pasos para lograr este objetivo. Por favor, pruebe los pasos a continuación.

Supongamos que primero ya tiene una tabla como esta en el Editor de consultas:

11042.jpg

Reemplace los valores en blanco por null en Column2 y Column3: Transform -> Replace Values.

11043.jpg

Agregue una columna personalizada y use Rellenar para obtener los nombres de los titulares de la tarjeta para cada fila.

11044.jpg11045.jpg

Seleccione Columna2 y filtre las filas con el valor Fecha de registro y nulo.

11046.jpg

Por último, cambie el nombre de las columnas y reordenélas.

11047.jpg

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8srPyFPSUQKhWJ1opYDUosz8FAXXvBSgSEB+cUlmXrqCS2JJKpAbUpSYB2GDVBoaGgLFjIyMgKSxsTFJYo55eYl0txSbmG9iSUZq+aBwCoZYLAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}}),
    #"Replaced Value" = Table.ReplaceValue(#"Changed Type","",null,Replacer.ReplaceValue,{"Column2", "Column3"}),
    #"Added Custom" = Table.AddColumn(#"Replaced Value", "Custom", each if [Column2] = null and [Column3] = null and [Column1] <> null then [Column1] else null),
    #"Filled Down" = Table.FillDown(#"Added Custom",{"Custom"}),
    #"Filtered Rows" = Table.SelectRows(#"Filled Down", each ([Column2] = "222")),
    #"Renamed Columns" = Table.RenameColumns(#"Filtered Rows",{{"Column1", "Period End"}, {"Column2", "Posting Date"}, {"Column3", "Tran Date"}, {"Custom", "Card Holder"}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns",{"Card Holder", "Period End", "Posting Date", "Tran Date"})
in
    #"Reordered Columns"

Puede descargar el archivo .pbix para obtener más detalles. Espero que esto ayude.

Saludos

Equipo de apoyo a la comunidad _ Jing Zhang

Si este post ayuda,por favor considere Aceptarlo como la solución para ayudar a otros miembros a encontrarlo.

Ashish_Mathur
Super User
Super User

Hola

Este código M funciona

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8srPyFOK1YlWCkgtysxPUXDNS9EJyC8uycxLV3BJLEnVCSlKzAOzwKoMDQ11jIyMdIyNjXVMTExIEnPMy0ukk1XYxHwTSzJSywfQAUSJxQIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Header = _t]),
    #"Added Index" = Table.AddIndexColumn(Source, "Index", 0, 1, Int64.Type),
    #"Uppercased Text" = Table.TransformColumns(#"Added Index",{{"Header", Text.Upper, type text}}),
    #"Added Custom" = Table.AddColumn(#"Uppercased Text", "Custom", each Text.Start([Header],6)),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Card Holder", each try if #"Added Custom" [Custom] {[Index] + 1}="PERIOD" then [Custom] else null otherwise null),
    #"Filled Down" = Table.FillDown(#"Added Custom1",{"Card Holder"}),
    #"Added Custom2" = Table.AddColumn(#"Filled Down", "Rows to remove", each [Custom]=[Card Holder]),
    #"Filtered Rows" = Table.SelectRows(#"Added Custom2", each ([Rows to remove] = false) and ([Custom] = "111,22")),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Index", "Custom", "Rows to remove"}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Removed Columns", "Header", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Header.1", "Header.2", "Header.3", "Header.4"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Header.1", Int64.Type}, {"Header.2", Int64.Type}, {"Header.3", Int64.Type}, {"Header.4", Int64.Type}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Changed Type",{"Card Holder", "Header.1", "Header.2", "Header.3", "Header.4"}),
    #"Renamed Columns" = Table.RenameColumns(#"Reordered Columns",{{"Header.1", "Period End"}, {"Header.2", "Posting Date"}, {"Header.3", "Tran Date"}})
in
    #"Renamed Columns"

Espero que esto ayude.

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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