Partilhar via


Lidar com erros no Power Query

No Power Query, pode encontrar dois tipos de erros:

  • Erros de nível de etapa
  • Erros no nível da célula

Este artigo fornece sugestões sobre como corrigir os erros mais comuns que você pode encontrar em cada nível e descreve o motivo do erro, a mensagem de erro e os detalhes do erro para cada um.

Erro de nível de etapa

Um erro de nível de etapa impede que a consulta seja carregada e exibe os componentes de erro em um painel amarelo.

Captura de ecrã de um erro ao nível de etapa em que uma coluna não foi encontrada.

  • Motivo do erro: A primeira parte antes do ponto. No exemplo anterior, o motivo do erro é Expression.Error.
  • Mensagem de erro: A seção diretamente após o motivo. No exemplo anterior, a mensagem de erro é A coluna 'Coluna' da tabela não foi encontrada.
  • Detalhe do erro: A seção diretamente após a cadeia de caracteres Details:. No exemplo anterior, o detalhe do erro é Column.

O Power Query Online apresenta detalhes ligeiramente diferentes. O detalhe do erro ainda é Coluna, mas a mensagem de erro online também contém o motivo do erro (Expression.Error) e o código de erro (10224).

Captura de ecrã de um erro online ao nível do passo em que uma coluna não foi encontrada.

Erros comuns em etapas

Em todos os casos, recomendamos que você examine atentamente o motivo do erro, a mensagem de erro e os detalhes do erro para entender o que está causando o erro. Você pode selecionar o botão Mostrar detalhes , se disponível, para mostrar mais detalhes sobre o erro.

Captura de ecrã de uma mensagem de erro com o botão Mostrar detalhes realçado.

Não é possível encontrar a origem de dados - DataSource.NotFound

Esse erro geralmente ocorre quando a fonte de dados está inacessível pelo usuário, o usuário não tem as credenciais corretas para acessar a fonte de dados ou a fonte foi movida para um local diferente.

Exemplo: Você tem uma consulta de um bloco de texto que foi localizado na unidade D e criado pelo usuário A. O usuário A compartilha a consulta com o usuário B, que não tem acesso à unidade D. Quando essa pessoa tenta executar a consulta, ela obtém um DataSource.NotFound porque não há unidade D em seu ambiente.

Captura de tela de um erro de fonte de dados que não conseguiu localizar o arquivo porque não há unidade D no ambiente atual.

Soluções possíveis: Você pode alterar o caminho do arquivo de texto para um caminho ao qual ambos os usuários tenham acesso. Como usuário B, você pode alterar o caminho do arquivo para ser uma cópia local do mesmo arquivo de texto.

A coluna da tabela não foi encontrada

Esse erro geralmente é acionado quando uma etapa faz uma referência direta a um nome de coluna que não existe na consulta.

Exemplo: Você tem uma consulta de um arquivo de texto em que um dos nomes de coluna era Coluna. Na consulta, você tem uma etapa que renomeia essa coluna para Data. Mas houve uma alteração no arquivo de texto original, e ele não tem mais um título de coluna com o nome Coluna porque foi alterado manualmente para Data. O Power Query não consegue encontrar um título de coluna chamado Coluna, pelo que não pode mudar o nome de nenhuma coluna. Ele exibe o erro mostrado na imagem a seguir.

Captura de ecrã de um erro de expressão em que a coluna da tabela não foi encontrada porque o nome da coluna foi alterado manualmente.

Soluções possíveis: Existem várias soluções para este caso, mas todas dependem do que você gostaria de fazer. Neste exemplo, como o cabeçalho correto da coluna Data já vem do seu arquivo de texto, você pode simplesmente remover a etapa que renomeia a coluna. Essa alteração permite que sua consulta seja executada sem esse erro.

Outros erros comuns no nível passo a passo

Ao combinar ou mesclar dados entre várias fontes de dados, você pode obter um erro Formula.Firewall , como o mostrado na imagem a seguir.

Captura de ecrã de uma fórmula Erro de firewall informando que a consulta faz referência a outras consultas ou etapas, portanto, ela pode não acessar diretamente uma fonte de dados.

Esse erro ocorre por vários motivos, como os níveis de privacidade de dados entre fontes de dados ou a maneira como essas fontes de dados estão sendo combinadas ou mescladas. Para obter mais informações sobre como diagnosticar esse problema, vá para Firewall de privacidade de dados.

Erro no nível da célula

Um erro no nível da célula não impede que a consulta seja carregada, mas exibe valores de erro como Erro na célula. A seleção do espaço em branco na célula exibe o painel de erro abaixo da visualização de dados.

Captura de tela demonstrando a exibição da mensagem de erro selecionando espaço em branco em uma célula da tabela que contém um erro.

Observação

As ferramentas de criação de perfil de dados podem ajudá-lo a identificar mais facilmente erros no nível da célula com o recurso de qualidade de coluna. Para obter mais informações, vá para Ferramentas de criação de perfil de dados.

Tratamento de erros ao nível da célula

Quando encontrar erros ao nível da célula, o Power Query fornece um conjunto de funções para os tratar através da remoção, substituição ou manutenção dos erros.

Nas próximas seções, os exemplos fornecidos usam a mesma consulta de exemplo como ponto de partida. Nesta consulta, você tem uma coluna Sales que tem uma célula com um erro causado por um erro de conversão. O valor dentro dessa célula era NA, mas quando você transformou essa coluna em um número inteiro, o Power Query não conseguiu converter NA em um número, portanto, exibe o seguinte erro.

Captura de ecrã mostrando o erro de formato de dados, que contém o erro de não conseguir converter para o tipo de dados no painel de erros.

Remover erros

Para remover linhas com erros no Power Query, selecione primeiro a coluna que contém erros. No separador Base, no grupo Reduzir linhas, selecione Remover linhas. No menu pendente, selecione Remover erros.

Captura de ecrã do botão de remover erros no separador Base.

O resultado dessa operação fornece a tabela a seguir.

A captura de tela da tabela que continha cinco linhas agora tem a linha que continha o erro removida, deixando quatro linhas na tabela.

Substituir erros

Se, em vez de remover linhas com erros, você quiser substituir os erros por um valor fixo, você também pode fazê-lo. Para substituir linhas com erros, selecione primeiro a coluna que contém erros. Na guia Transformar, no grupo Todas as colunas, selecione Substituir valores. No menu pendente, selecione Substituir erros.

Captura de ecrã do botão Substituir erros no separador Transformar.

Na caixa de diálogo Substituir erros , insira o valor 10 porque deseja substituir todos os erros pelo valor 10.

Captura de ecrã da caixa de diálogo Erros de substituição com o valor definido como 10.

O resultado dessa operação fornece a tabela a seguir.

Captura de tela da tabela na qual a terceira linha continha um erro na coluna Vendas agora tem o erro substituído pelo valor 10.

Manter erros

O Power Query pode servir como uma boa ferramenta de auditoria para identificar quaisquer linhas com erros, mesmo que não os corrija. Esta é a situação em que Manter erros pode ser útil. Para manter linhas com erros, selecione primeiro a coluna que contém erros. No separador Base , no grupo Reduzir linhas , selecione Manter linhas. No menu de seleção, selecione Manter erros.

Captura de ecrã do botão manter erros no separador Base.

O resultado dessa operação fornece a tabela a seguir.

Captura de ecrã da tabela final que mantém apenas linhas que contêm erros.

Erros comuns no nível da célula

Como em qualquer erro de nível de etapa, recomendamos que você examine de perto os motivos do erro, as mensagens de erro e os detalhes de erro fornecidos no nível da célula para entender o que está causando os erros. As secções seguintes abordam alguns dos erros mais frequentes ao nível da célula no Power Query.

Erros de conversão de tipo de dados

Normalmente acionado ao alterar o tipo de dados de uma coluna em uma tabela. Alguns valores encontrados na coluna não puderam ser convertidos para o tipo de dados desejado.

Exemplo: Você tem uma consulta que inclui uma coluna chamada Vendas. Uma célula nessa coluna tem NA como um valor de célula, enquanto o resto tem números inteiros como valores. Você decide converter o tipo de dados da coluna de texto para número inteiro, mas a célula com o valor NA causa um erro.

Captura de tela mostrando os detalhes do erro Não foi possível converter para o tipo de dados.

Soluções possíveis: Depois de identificar a linha com o erro, você pode modificar a fonte de dados para refletir o valor correto em vez de NA ou pode aplicar uma operação de erro Substituir para fornecer um valor para quaisquer valores NA que causem um erro.

Erros de operação

Ao tentar aplicar uma operação que não é suportada, como multiplicar um valor de texto por um valor numérico, ocorre um erro.

Exemplo: você deseja criar uma coluna personalizada para sua consulta criando uma cadeia de caracteres de texto que contenha a frase "Total de vendas: " concatenada com o valor da coluna Vendas . Ocorre um erro porque a operação de concatenação suporta apenas colunas de texto e não numéricas.

Captura de ecrã do erro de expressão no painel de erros causado pela tentativa de aplicar um operador And ao texto e a um número da coluna Vendas.

Soluções possíveis: antes de criar esta coluna personalizada, altere o tipo de dados da coluna Vendas para texto.

Captura de ecrã da tabela com a coluna de vendas convertida de um número para um tipo de texto e uma nova coluna contendo ambas as expressões.

Valores aninhados mostrados como erros

Ao trabalhar com dados que contêm valores estruturados aninhados (como tabelas, listas ou registros), às vezes você pode encontrar o seguinte erro:

Captura de ecrã de um erro para valores aninhados acionado pela firewall de fórmulas em curso.

Expression.Error: We cannot return a value of type {value} in this context

Details: In the past we would have returned a text value of {value}, but we now return this error. Please see https://go.microsoft.com/fwlink/?linkid=2099726 for more information.

Esses erros geralmente ocorrem por dois motivos:

  • Quando o Data Privacy Firewall armazena em buffer uma fonte de dados, os valores não escalares aninhados são automaticamente convertidos em erros.
  • Quando uma coluna definida com o tipo de dados Any contém valores não escalares, tais valores são reportados como erros durante o carregamento (como numa Pasta de Trabalho no Excel ou no modelo de dados no Power BI Desktop).

Soluções possíveis:

  • Remova a coluna que contém o erro ou defina um tipo de dados que não seja Any para essa coluna.
  • Altere os níveis de privacidade das fontes de dados envolvidas para uma que permita que eles sejam combinados sem serem armazenados em buffer.
  • Nivele as tabelas antes de fazer uma mesclagem para eliminar colunas que contenham valores estruturados aninhados (como tabela, registro ou lista).