Dica: Expressões lambda no PowerQuery

Na nossa dica rápida de hoje, vamos falar um pouco mais sobre funções lambda e como elas podem ser úteis no PowerQuery.

Funções lambda são funções anônimas, ou seja, funções sem um nome. Elas são compactas e não precisam ser definidas para serem usadas, o que torna a codificação mais dinâmica em diferentes cenários.

Abaixo temos dois exemplos em Python para realizar uma soma simples de dois números.

Função definida:

def soma(num1, num2):
    return num1 + num2

Função lambda:

lambda num1, num2: num1+num2

Como você pode ver, a função lambda é bem compacta.

Mas como isso pode ser útil no PowerQuery?

Bem, as funções lambda também estão disponíveis no PowerQuery, e é possível que você já tenha usado sem perceber.

Veja o exemplo abaixo:

let
    Fonte = Table.FromRecords(
        {
            [Coluna1 = "Teste1", Coluna2 = 1.5],
            [Coluna1 = "Teste2", Coluna2 = 11]
        }
    ),
    LambdaExpression = Table.TransformColumns(Fonte, {"Coluna2", each _ + 1})
in
    LambdaExpression

Neste exemplo, iteramos todas as linhas enquanto adicionamos um valor constante igual a 1 à coluna "Coluna2".

Agora, vamos fazer uma pequena alteração no código:

let
    Fonte = Table.FromRecords(
        {
            [Coluna1 = "Teste1", Coluna2 = 1.5],
            [Coluna1 = "Teste2", Coluna2 = 11]
        }
    ),
    LambdaExpression = Table.TransformColumns(Fonte, {"Coluna2", (col) => col + 1})
in
    LambdaExpression

Perceba que o resultado é exatamente o mesmo, mas a sintaxe é semelhante às expressões lambda do C#. Nesse caso, usamos o operador "=>" para definir a expressão lambda, os valores à esquerda são os parâmetros de entrada e à direita temos a operação em si.

Para os mais experientes, isso pode parecer simples, mas para um iniciante pode ser um pouco confuso devido à sintaxe diferente.

Agora que você entende um pouco mais sobre o assunto, aproveite para explorar ao máximo o recurso no PowerQuery.

Abraços e até a próxima dica!

Next Post Previous Post
No Comment
Add Comment
comment url