Forum Discussion
Combinar varias columnas
hola comunidad PBI,
Tengo la siguiente tabla de datos (> 300.000 filas):
| ID de cliente | Tarea | Importe | Inv. No. 1 | Datos inv. No. 1 | Inv. No. 2 | Datos inv. No. 2 |
| a001 | admisión | 30 | I2022001 | 1-1-2021 | espacio en blanco | espacio en blanco |
| a001 | contacto | 20 | I2022001 | 1-1-2021 | espacio en blanco | espacio en blanco |
| a001 | consultar | 100 | I2022001 | 1-1-2021 | espacio en blanco | espacio en blanco |
| a001 | contacto | -20 | I2022001 | 1-1-2021 | I2022002 | 1-2-2021 |
| a001 | admisión | 30 | I2022002 | 1-2-2021 | espacio en blanco | espacio en blanco |
Cuando una tarea no se acredita, el colums Inv. nr 2 está en blanco. Cuando se acredita una tarea, el número de la nueva factura se rellena en colums Inv. nr 2 y el importe cambia a un número negativo. En este caso, si envías originalmente una factura (Inv. nr I2022001) con un importe de 150 EUR y una nueva factura (I2022002) con un importe de 10 EUR (30 EUR y el acreditado EUR -20). ¿Existe la posibilidad de fusionar o expandir los colums para obtener 1 columna con el número de factura correcto?
Muchas gracias de antemano,
Saludos
Franco
Entonces, ¿es lo que quieres? Se ha añadido una nueva columna en lugar de transformar la original
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSjQwMFTSUcrMK0nMTgUyjA2AhKeRgZERRMLAUB+IgHwQJyknMS8bTsfqwLUn5wP1J5cAWUbk6i8uzQHpNzSg0AG6eF0AFTeCihtBxJEMwhoQaMox3BELAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Client ID" = _t, Task = _t, Amount = _t, #"Inv. Nr 1" = _t, #"Date inv. Nr 1" = _t, #"Inv. Nr 2" = _t, #"Date inv. Nr 2" = _t]), #"Added Custom" = Table.AddColumn(Source, "Inv", each if [Inv. Nr 2]="blank" then [Inv. Nr 1] else [Inv. Nr 2]), #"Added Custom1" = Table.AddColumn(#"Added Custom", "Date", each if [Date inv. Nr 2] ="blank" then [Date inv. Nr 1] else [Date inv. Nr 2]), #"Changed Type" = Table.TransformColumnTypes(#"Added Custom1",{{"Date", type date}, {"Amount", type number}}), #"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"Inv. Nr 1", "Date inv. Nr 1", "Inv. Nr 2", "Date inv. Nr 2"}) in #"Removed Columns"
1 Reply
- Syndicate_Admin
Administrator
Entonces, ¿es lo que quieres? Se ha añadido una nueva columna en lugar de transformar la original
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSjQwMFTSUcrMK0nMTgUyjA2AhKeRgZERRMLAUB+IgHwQJyknMS8bTsfqwLUn5wP1J5cAWUbk6i8uzQHpNzSg0AG6eF0AFTeCihtBxJEMwhoQaMox3BELAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Client ID" = _t, Task = _t, Amount = _t, #"Inv. Nr 1" = _t, #"Date inv. Nr 1" = _t, #"Inv. Nr 2" = _t, #"Date inv. Nr 2" = _t]), #"Added Custom" = Table.AddColumn(Source, "Inv", each if [Inv. Nr 2]="blank" then [Inv. Nr 1] else [Inv. Nr 2]), #"Added Custom1" = Table.AddColumn(#"Added Custom", "Date", each if [Date inv. Nr 2] ="blank" then [Date inv. Nr 1] else [Date inv. Nr 2]), #"Changed Type" = Table.TransformColumnTypes(#"Added Custom1",{{"Date", type date}, {"Amount", type number}}), #"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"Inv. Nr 1", "Date inv. Nr 1", "Inv. Nr 2", "Date inv. Nr 2"}) in #"Removed Columns"