Tratamento de erros

assim como Excel e a linguagem DAX têm uma IFERROR função, Power Query tem sua própria sintaxe para testar e capturar erros.

Conforme mencionado no artigo sobre como lidar com erros no Power Query, os erros podem aparecer no nível da etapa ou da célula. Este artigo se concentrará em como você pode detectar e gerenciar erros com base em nossa lógica específica.

Observação

para demonstrar esse conceito, este artigo usará uma pasta de trabalho Excel como sua fonte de dados. os conceitos apresentados aqui se aplicam a todos os valores em Power Query e não apenas aos que vêm de uma pasta de trabalho do Excel.

Aplicando a lógica condicional com base em erros

a fonte de dados de exemplo para esta demonstração é uma pasta de trabalho Excel com a seguinte tabela:

Dados de exemplo de Excel.

esta tabela de uma pasta de trabalho do Excel tem Excel erros como #NULL!, #REF! e #DIV/0! na coluna taxa padrão . Quando você importa essa tabela para o editor de Power Query, a imagem a seguir mostra como ela será exibida.

Tabela de exemplo no Power Query.

observe como os erros da pasta de trabalho do Excel são mostrados com o [Error] valor em cada uma das células.

Nesse caso, o objetivo é criar uma nova coluna de taxa final que usará os valores da coluna taxa padrão . Se houver erros, ele usará o valor da coluna taxa especial de correspondente.

Adicionar coluna personalizada com try e otherwise sintaxe

Para criar uma nova coluna personalizada, vá para o menu adicionar coluna e selecione coluna personalizada. Na janela coluna personalizada , insira a fórmula try [Standard Rate] otherwise [Special Rate] . Nomeie essa nova taxa final de coluna.

Tente a coluna personalizada de outra forma.

A fórmula acima tentará avaliar a coluna de taxa padrão e produzirá seu valor se nenhum erro for encontrado. Se forem encontrados erros na coluna taxa padrão , a saída será o valor definido após a otherwise instrução, que nesse caso é a coluna de taxa especial .

Depois de adicionar os tipos de dados corretos a todas as colunas na tabela, a imagem a seguir mostra a aparência da tabela final.

A tabela final tentará de outra forma.

Captura de um erro com try e aplicação da lógica condicional personalizada

Usando a mesma fonte de dados de exemplo da seção anterior, a nova meta é criar uma nova coluna para a taxa final. Se o valor da taxa padrão existir, esse valor será usado. Caso contrário, o valor da coluna de taxa especial será usado, exceto para as linhas com qualquer #REF! erro.

Observação

A única finalidade de excluir o #REF! erro é para fins de demonstração. Com os conceitos apresentados neste artigo, você pode direcionar quaisquer motivos de erro, mensagens ou detalhes de sua escolha.

Ao selecionar qualquer um dos espaços em branco ao lado do valor de erro, você obtém o painel detalhes na parte inferior da tela. O painel de detalhes contém o motivo do erro, DataFormat.Error e a mensagem de erro Invalid cell value '#REF!' :

Erro de exemplo.

Você só pode selecionar uma célula por vez para poder ver efetivamente os componentes de erro de um valor de erro por vez. É aqui que você criará uma nova coluna personalizada e usará a try expressão.

Adicionar coluna personalizada com try sintaxe

Para criar uma nova coluna personalizada, vá para o menu adicionar coluna e selecione coluna personalizada. Na janela coluna personalizada , insira a fórmula try [Standard Rate] . Nomeie esta nova coluna como todos os erros.

Usando try em uma coluna personalizada.

A try expressão converte valores e erros em um valor de registro que indica se a try expressão tratou um erro ou não, bem como o valor adequado ou o registro de erro.

Tente gravar valores.

Você pode expandir essa coluna recém-criada com valores de registro e examinar os campos disponíveis a serem expandidos selecionando o ícone ao lado do cabeçalho da coluna.

Expanda valores de registro.

Esta operação vai expor três novos campos:

  • Todos os erros. HasError — exibe se o valor da coluna de taxa padrão teve um erro ou não.
  • Todos os erros. valor — Se o valor da coluna taxa padrão não tiver nenhum erro, essa coluna exibirá o valor da coluna taxa padrão . Para valores com erros esse campo não estará disponível e, durante a operação de expansão, essa coluna terá null valores.
  • Todos os erros. erro — Se o valor da coluna taxa padrão tiver um erro, essa coluna exibirá o registro de erro para o valor da coluna taxa padrão . Para valores sem erros, esse campo não estará disponível e, durante a operação de expansão, essa coluna terá null valores.

Experimente os campos expandidos.

Para uma investigação mais aprofundada, você pode expandir a coluna todos os erros. erro para obter os três componentes do registro de erro:

  • Motivo do erro
  • Mensagem de erro
  • Detalhes do erro

depois de executar a operação de expansão, o campo todos os erros. erro. mensagem exibe a mensagem de erro específica que informa exatamente o que Excel erro em cada célula. A mensagem de erro é derivada do campo mensagem de erro do registro de erro.

Mensagem de erro específica.

Adicionar uma coluna condicional

Agora, com cada mensagem de erro em uma nova coluna, você pode criar uma nova coluna condicional com a taxa de nome final e as seguintes cláusulas:

  • Se o valor na coluna todos os erros. Errors. Message for igual a null , a saída será o valor da coluna taxa padrão .
  • Caso contrário, se o valor na coluna todos os erros. Errors. Message for igual a Invalid cell value '#REF!'. , a saída será o valor da coluna taxa especial .
  • Senão, NULL.

Coluna condicional da mensagem de erro.

Depois de manter apenas as colunas conta, taxa padrão, taxa especial e taxa final e adicionando o tipo de dados correto para cada coluna, a imagem a seguir é parecida com a tabela final.

Tabela final com tipos de dados.

Mais recursos