Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
2 years ago

Columna calculada de Power Query

Hola a todos, por favor, necesito su ayuda con Power Query. Necesito crear una nueva columna que siga esta lógica:

3 Replies

  • Hola @toum ,

    ¿Qué te parece esto?

    Aquí el código que puedes pegar en el editor avanzado. Siéntase libre de consultar los pasos en el lado derecho también 🙂

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUQKhWJ1oJScgwxGMQTxnIMsJJuWCzHFDUecBZLnBpIKBjCAwBvG8gaxgsFQsAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Home = _t, Destination = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Home", type text}, {"Destination", type text}}),
        #"Merged Queries" = Table.NestedJoin(#"Changed Type", {"Home"}, #"Changed Type", {"Name"}, "Added Custom", JoinKind.LeftOuter),
        #"Expanded Added Custom2" = Table.ExpandTableColumn(#"Merged Queries", "Added Custom", {"Destination"}, {"Added Custom.Destination"}),
        #"Added Custom" = Table.AddColumn(#"Expanded Added Custom2", "NewColumn", each if [Destination] = "" then [Added Custom.Destination] else [Destination]),
        #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Added Custom.Destination"}),
        #"Sorted Rows" = Table.Sort(#"Removed Columns",{{"Name", Order.Ascending}})
    in
        #"Sorted Rows"

    Espero que esto ayude 🙂

    /Tom
    https://www.tackytech.blog/
    https://www.instagram.com/tackytechtom/

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Muchas gracias por su ayuda, eso es lo que necesitaba, pero por favor, otra cosa para la fila1 la NewColumn debe ser A. (si el destino está vacío y Name=Home o Home está vacío, la newColumn debe = Name).

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        @toum ,

        Aquí el código:

        let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUQKhWJ1oJScgwxGMQTxnIMsJJuWCzHFDUecBZLnBpIKBjCAwBvG8gaxgsFQsAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Home = _t, Destination = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Home", type text}, {"Destination", type text}}),
        #"Merged Queries" = Table.NestedJoin(#"Changed Type", {"Home"}, #"Changed Type", {"Name"}, "Added Custom", JoinKind.LeftOuter),
        #"Expanded Added Custom2" = Table.ExpandTableColumn(#"Merged Queries", "Added Custom", {"Destination"}, {"Added Custom.Destination"}),
        #"Added Custom" = Table.AddColumn(#"Expanded Added Custom2", "NewColumn", each
        if [Destination] = "" then [Added Custom.Destination]
        else [Destination]),
        #"Replaced Value" = Table.ReplaceValue(#"Added Custom",null, each [Name],Replacer.ReplaceValue,{"NewColumn"}),
        #"Removed Columns" = Table.RemoveColumns(#"Replaced Value",{"Added Custom.Destination"}),
        #"Sorted Rows" = Table.Sort(#"Removed Columns",{{"Name", Order.Ascending}})
        in
        #"Sorted Rows"

        ¡No olvide marcar la respuesta como una solución para que otros puedan detectar fácilmente la respuesta!

        /Tom
        https://www.tackytech.blog/
        https://www.instagram.com/tackytechtom/