Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago
Solved

Combinar varias columnas

hola comunidad PBI,

Tengo la siguiente tabla de datos (> 300.000 filas):

ID de clienteTareaImporteInv. No. 1Datos inv. No. 1Inv. No. 2Datos inv. No. 2
a001admisión30I20220011-1-2021espacio en blancoespacio en blanco
a001contacto20I20220011-1-2021espacio en blancoespacio en blanco
a001consultar100I20220011-1-2021espacio en blancoespacio en blanco
a001contacto-20I20220011-1-2021I20220021-2-2021
a001admisión30I20220021-2-2021espacio en blancoespacio 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

  • ¿ @frankhofmans

    Entonces, ¿es lo que quieres? Se ha añadido una nueva columna en lugar de transformar la original

    Vera_33_0-1649681350895.png

    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

  • ¿ @frankhofmans

    Entonces, ¿es lo que quieres? Se ha añadido una nueva columna en lugar de transformar la original

    Vera_33_0-1649681350895.png

    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"