Uma função personalizada utiliza a linguagem da fórmula M, utiliza um conjunto de valores de entrada e, em seguida, devolve um único valor de saída. Se tiver lógica que pretende reutilizar muitas vezes ou aplicar o mesmo conjunto de transformações a uma consulta ou valor diferente, considere criar uma função personalizada e, em seguida, invocar a função onde e quando precisar dela. Existem várias formas de criar uma função personalizada:
-
Utilize o Editor Avançado para adicionar a sua própria instrução let e começar do zero.
-
Utilize o comando Invocar Função Personalizada .
-
Existem formas adicionais de criar funções não abordadas neste tópico de ajuda, incluindo os comandos Criar Função e Adicionar como uma Consulta . Para um debate aprofundado, veja Understanding Power Query M functions (docs.com) and Using custom functions (docs.com) (Compreender as funções M (docs.com)e Utilizar funções personalizadas (docs.com).
Segue-se um exemplo simples de uma função personalizada que segue uma tradição de programação de longa data.
-
Para criar uma consulta em branco:
Excel Selecione Dados > Obter Dados > De Outras Origens > Consulta em Branco. Power Query clique com o botão direito do rato num local em branco no painel Consultas à esquerda e, em seguida, selecione Nova Consulta > Outras Origens > Consulta em Branco. -
No painel Consultas à esquerda, faça duplo clique no nome e, em seguida, mude o nome da nova consulta em branco para "HelloWorld".
-
Selecione a nova consulta e, em seguida, selecione Base > Editor Avançado.
-
Substitua o código de arranque do modelo pelo seguinte código:
let HelloWorld = () => ("Hello World") in HelloWorld
-
Selecione Concluído.
-
Alterou a consulta "HelloWorld" para uma função personalizada. Repare no ícone de função
à esquerda. -
Para invocar a função, selecione-a e, em seguida, selecione Invocar na Pré-visualização de Dados.
-
Os resultados da função são apresentados na Pré-visualização de dados e adicionados ao painel Consultas como uma consulta com o nome predefinido Função Invocada. Talvez queira mudar o nome para algo mais significativo, como "HelloWorldResult".
-
Selecione essa consulta e, em seguida, selecione Base > Fechar & Carregar para ver os resultados numa folha de cálculo.
Resultados
O exemplo seguinte mostra como transmitir um parâmetro para uma função personalizada para converter um número decimal em hexadecimal.
-
Para criar uma consulta em branco:
Excel Selecione Dados > Obter Dados > De Outras Origens > Consulta em Branco. Power Query clique com o botão direito do rato num local em branco no painel Consultas à esquerda e, em seguida, selecione Nova Consulta > Outras Origens > Consulta em Branco. -
No painel Consultas à esquerda, mude o nome da nova consulta em branco para "MyHex".
-
Selecione a nova consulta e, em seguida, selecione Base > Editor Avançado.
-
Substitua o código de arranque do modelo pelo seguinte código:
let MyHex = (parameter1) => Number.ToText(parameter1,"X") in MyHex
-
Selecione Concluído.
-
Alterou a consulta "MyHex" para uma função personalizada. Repare no ícone de função
à esquerda. -
Para invocar a função, selecione-a e, em seguida, em Pré-visualização de Dados, introduza um número na caixa parameter1 e selecione Invocar.
-
Os resultados da função são apresentados na Pré-visualização de dados e adicionados ao painel Consultas como uma consulta com o nome predefinido Função Invocada. Poderá querer mudar o nome para algo mais significativo, como "MyHexResult".
-
Selecione essa consulta e, em seguida, selecione Base > Fechar & Carregar para ver os resultados numa folha de cálculo.
Resultados
Se tiver criado uma função com, pelo menos, um parâmetro, pode invocá-la como uma função personalizada para criar uma nova coluna e um novo valor para cada linha numa tabela.
-
Para abrir uma consulta, localize uma que foi carregada anteriormente a partir do Editor do Power Query, selecione uma célula nos dados e, em seguida, selecione Consulta > Editar. Para obter mais informações, consulte Criar, editar e carregar uma consulta no Excel (Power Query). Nota Para este exemplo, a consulta precisa de, pelo menos, uma coluna de um tipo de dados Número Inteiro .
-
Crie a função personalizada "MyHex", conforme explicado na secção Criar e invocar uma função personalizada que tenha um parâmetro com o Editor Avançado.
-
Na consulta, selecione Adicionar Coluna > Invocar Função Personalizada. É apresentada a caixa de diálogo Invocar Função Personalizada .
-
Introduza o novo nome da coluna, como "HexConvert", na caixa Novo nome da coluna .
-
Selecione o nome de uma função personalizada predefinida no menu pendente Consulta de função. Neste exemplo, selecione "MyHex".
-
Uma vez que a função personalizada referencia um parâmetro, o parâmetro é agora apresentado.
-
Selecione uma coluna de um tipo de dados Número Inteiro como um parâmetro para a função.
-
Selecione OK.
Result
É criada uma nova coluna que mostra o valor hexadecimal da coluna Número Inteiro que introduziu como parâmetro.
Consulte Também
Ajuda do Power Query para Excel
Criar fórmulas do Power Query no Excel
Criar uma consulta parametrizada