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).
Criar e invocar uma função personalizada simples com o Editor Avançado
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 Consulta.
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
HelloWorldSelecione Concluído.
Alterou a consulta "HelloWorld" para uma função personalizada. Anote o ícone de função
à esquerda do mesmo.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>Fechar Base & Carregar para ver os resultados numa folha de cálculo.
Resultados
Criar e invocar uma função personalizada que tenha um parâmetro com o Editor Avançado
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 Consulta.
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
MyHexSelecione Concluído.
Alterou a consulta "MyHex" para uma função personalizada. Anote o ícone de função
à esquerda do mesmo.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>Fechar Base & Carregar para ver os resultados numa folha de cálculo.
Resultados
Adicionar uma coluna ao invocar uma função personalizada
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 Editar Consulta>. 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.
Resultado
É criada uma nova coluna que mostra o valor hexadecimal da coluna Número Inteiro que introduziu como parâmetro.
Veja Também
Ajuda do Power Query para Excel
Criar fórmulas do Power Query no Excel