Power Query

Power Query – Erros comuns e como corrigi-los

Compartilhe!

Tenho certeza de que você não chegou até aqui sem encontrar seu quinhão de erros do Power Query. Assim como o Excel e outros aplicativos, o Power Query tem suas próprias mensagens de erro exclusivas. Você provavelmente se esqueceu da primeira vez que encontrou o #NAME? ou #VALUE! erros no Excel, mas com o tempo você provavelmente descobriu o que fazer quando eles surgissem. Agora que você está trabalhando com o Power Query, as mensagens de erro parecem estranhas e desconhecidas e podem ser assustadoras no início. Com o tempo, você começará a entender quais são os erros e suas causas.

Embora não possamos cobrir todos os erros, o objetivo desta postagem é ajudar a desmistificar alguns dos erros mais comuns que você provavelmente encontrará.

Tipos de erros

As mensagens de erro podem aparecer em vários locais, como no painel Consultas e conexões, no Power Query Editor ou talvez apenas como um valor em um campo.

Agrupei os erros em três tipos:

  • Erros de criação de processos
  • Erros de processamento de dados
  • Bugs de software

Analisaremos cada um deles separadamente e descobriremos como corrigir problemas comuns.

Erros de criação de processos

Ocorrem erros de criação de processos enquanto construímos nossa consulta. Eles são causados ​​por erros no código M ou por usuários que não entendem como o Power Query opera.

Erros de código M

Erros de código M podem ser difíceis de encontrar, especialmente se você for novo na linguagem. Uma vírgula ou uma palavra digitada incorretamente é o suficiente para fazer com que o processo falhe. Os três locais principais onde podemos editar o código M:

  • Colunas Personalizadas
  • Editor Avançado
  • Barra de Fórmula

Vamos começar examinando Colunas personalizadas e, em seguida, examinar o Editor avançado e a Barra de fórmulas juntos.

Colunas Personalizadas

Das opções de codificação M, o recurso de coluna personalizada é o mais acessível e aquele que provavelmente usaremos

As colunas personalizadas contêm um aviso na parte inferior da tela para ajudar a nos guiar com nossas fórmulas. A menos que estejamos trabalhando com o Power Query por um tempo, não entenderemos o que muitas dessas mensagens significam e, mesmo assim, essas mensagens de erro podem ser confusas.

Erro de coluna personalizada

A captura de tela acima mostra a mensagem esperada do Token RightParen . Esta é apenas uma das muitas mensagens potenciais. À medida que digitamos na caixa de fórmula, a mensagem muda. Portanto, não vale a pena olhar para esta mensagem até que pensemos que a fórmula acabou. Se a opção Mostrar erro estiver visível, podemos clicar nela para nos levar exatamente para onde está o problema.

Depois de saber o que as mensagens significam, elas não são tão difíceis quanto podem parecer. Os avisos mais comuns que você encontrará são:

  • Token literal esperado significa que o próximo item na fórmula deve ser um valor, nome de coluna ou função.
  • Token então esperado ou Token então esperado significa que as palavras então ou então devem ser inseridas em seguida. Eles aparecerão ao escrever uma declaração if.
  • Token RightParen esperado significa que um colchete de fechamento, ou parênteses dependendo do seu vernáculo local, deve fechar uma fórmula.
  • Uma vírgula não pode preceder um RightParen significa o que diz; uma vírgula não pode estar diretamente na frente de um colchete de fechamento, não há circunstâncias em M em que isso seja necessário.
  • Literal inválido indica que há um problema com o valor inserido como literal (isso geralmente ocorre quando uma string de teste não foi fechada usando o caractere de aspas duplas.
  • O token EoF esperado geralmente ocorre quando um nome de função inválido é usado, ou usa maiúsculas e minúsculas (por exemplo, if é um comando válido, enquanto If com I maiúsculo é inválido).
  • A fórmula está incompleta geralmente é uma indicação de que nenhuma fórmula foi inserida (apenas o símbolo de igual na caixa da fórmula).

As versões mais recentes do Power Query incluem IntelliSense, que reduz significativamente o risco de erro. Ajuda a identificar os argumentos e tipos de dados necessários para cada função, mas também ajuda a minimizar erros de digitação.

Assim que recebermos a mensagem que diz Nenhum erro de sintaxe foi detectado , podemos clicar no botão OK para fechar a janela. Isso não significa que a fórmula ou os tipos de dados estão corretos, mas que a sintaxe foi inserida corretamente.

Editor avançado e barra de fórmulas

O Editor Avançado e a Barra de Fórmulas não têm o mesmo nível de verificação que uma Coluna Personalizada; você pode aceitar as alterações mesmo que causem um erro. Isso significa que a variedade de mensagens de erro aumenta ao usar estes recursos:

  • O Editor Avançado tem a mesma mensagem de aviso na parte inferior de uma Coluna Personalizada, mas permite clicar em Concluído mesmo se houver um erro no código.
  • A Barra de Fórmula não tem verificações de erro, portanto, você pode fazer qualquer alteração no código e pressionar a tecla Enter para aceitar essas alterações.

Dada a infinidade de erros possíveis que você pode criar, não posso passar por todos eles. No entanto, depois que você souber ler a mensagem de erro, será muito mais fácil solucionar o problema.

A captura de tela abaixo mostra um Expression.SyntaxError … hmmm … o que isso significa? Se você olhar mais adiante no código, o Power Query gentilmente nos mostrou onde está o erro. Os números à esquerda mostram os números das linhas no código. Se você notar, há uma quebra nos números com uma seta —-> , isso é para indicar que esta linha destaca onde está o erro. Olhando ao longo dessa linha, encontraremos um grupo de ^^ , que indicam o local exato onde o erro reside.

Erro do Editor Avançado

Em nosso exemplo acima, o erro é que usamos um tipo de dado dat , que não é válido.

Onde houver vários erros no código, podemos precisar passar por várias rodadas de correção de erros, pois a mensagem de erro mostrará apenas um erro por vez.

Formula.Firewall error

Há um erro muito frustrante, que aparece de vez em quando:  Formula.Firewall: A consulta ‘[Nome da consulta]’ (nome da etapa) faz referência a outras consultas ou etapas, portanto, pode não acessar diretamente uma fonte de dados. Reconstrua esta combinação de dados.

Formula.Firewall Error

O que isso significa? E como você pode consertar isso?

O Power Query não gosta de usar duas fontes de dados juntas, onde as configurações de privacidade são diferentes. Isso geralmente ocorre quando há fontes de dados externas e internas usadas na mesma consulta.

Opção 1: ignorar as configurações de privacidade

Esta primeira opção não é ideal, pois ignora as configurações de privacidade de dados. No entanto, se você for a única pessoa acessando os dados, é uma pequena correção útil.

Clique em Arquivo -> Configurações de opções -> Opções de consulta

Arquivo - Configurações de opções - Opções de consulta

A janela Opções de consulta será aberta. Selecione Privacidade -> Sempre ignorar as configurações de nível de privacidade e clique em OK .

Atualize os dados para atualizar a consulta. Os dados agora são carregados corretamente.

Erros de processamento de dados

Erros de processamento de dados ocorrem quando os dados são alimentados por meio do processo de transformação. Pode não haver nada especificamente errado com os dados ou com o processo, mas os dois não funcionam bem juntos. Pode ser algo tão simples como as etapas de transformação esperando encontrar uma coluna chamada “Produto”, mas uma coluna “Produto” não existe no conjunto de dados. Nenhum deles está incorreto, mas eles simplesmente não se encaixam.

Os erros mais comuns nesta área são:

  • Localização de fonte errada
  • Mudanças no nome da coluna
  • Tipos de dados incorretos

Vamos examinar cada um deles com um pouco mais de detalhes

Localização de fonte errada

O erro de localização de origem incorreta ocorre quando um arquivo ou banco de dados mudou de localização ou quando um servidor travou e, portanto, a origem não pode ser acessada. De qualquer forma, o Power Query não consegue encontrar os dados de origem. Após a atualização, uma mensagem de erro como a seguinte aparecerá, detalhando a localização do arquivo que ele não consegue encontrar.

Mensagem de erro de dados de origem

Também veremos um erro na janela Consultas e conexões. Se clicarmos duas vezes na consulta, descobriremos mais detalhes sobre o erro.

Os dados de origem não foram baixados

O editor do Power Query será aberto e mostrará a seguinte mensagem. Clique em Ir para o erro para ir para a etapa exata.

Power Query - Erro de dados de origem (Ir para o erro)

Finalmente, você pode clicar em Editar configurações para alterar o local da fonte na janela.

Power Query - Erro de dados de origem (Editar configuração)

Nomes de coluna

Geralmente, os nomes dos cabeçalhos das colunas são codificados em algum lugar dentro do código M. Portanto, qualquer alteração na estrutura de dados de origem pode acionar o seguinte erro.

Nome da coluna alterado

O painel Consultas e conexões mostrará o mesmo erro de download não concluído que vimos anteriormente. Abrir a consulta revelará mais detalhes sobre o erro.

Nome da coluna alterado - mensagens de erro

Para corrigir o erro, podemos:

  • Altere o nome do cabeçalho nos dados de origem
  • Corrija o valor embutido no código dentro do código M por meio do Editor Avançado ou da Barra de Fórmula
  • Exclua a etapa anterior e insira uma nova que selecione corretamente o novo nome da coluna.

Seja qual for a opção que você escolher, você precisa ter cuidado. Mudanças mal implementadas podem causar outros problemas mais abaixo na consulta. A boa notícia é que você sempre pode descartar as alterações e começar de novo.

Tipos de dados

Erros de tipo de dados não impedirão o carregamento de dados na consulta; em vez disso, essas células serão carregadas em branco. O painel Consultas e conexões mostra o erro e indica o número de linhas com erros.

Dados carregados com erros

A captura de tela acima mostra 50 erros, mas pode facilmente ser apenas 1 ou 2, dependendo da estrutura dos dados.

Erros de tipo de dados ocorrem quando:

  • Os dados são convertidos de um tipo para outro – por exemplo, tentando transformar uma string de texto em um tipo de dados decimal.
  • Tipos de dados incorretos usados ​​nas funções – por exemplo, tentar usar uma função numérica em um tipo de dados de texto ou tentar multiplicar tipos de dados não numéricos

O Excel é muito tolerante e ficará feliz em alternar entre os tipos de dados onde pode. O Power Query não é tão tolerante, portanto, obter o tipo de dados correto é essencial.Clicar no link “Erros” no painel Consultas e conexões abrirá uma consulta mostrando todos os erros.

Clicar na janela de visualização de mostrar erros

Como pode ser visto na captura de tela acima, o Power Query mostrará onde estão os erros e, inclusive, fornecerá o número da linha para que você possa identificar o problema com os dados de origem. Depois de clicar na palavra “Erro” na janela de visualização, ela fornecerá detalhes sobre o problema específico.

DataFormat.Error Message

Na captura de tela sobre, podemos ver que o Power Query estava tentando converter o valor do texto de “David” em um número, o que não pode ser feito.

Embora possa haver várias linhas com erros, isso não significa que você deve corrigir cada linha individualmente. Alterar uma etapa pode ser suficiente para corrigir todos os erros ao mesmo tempo.

Bugs de software

Quando comecei a usar o Power Query, me deparei com dois bugs de software. Em ambos os casos, concluí que a culpa foi minha por não compreender a ferramenta corretamente. Porém, não fui eu, mas o software que não estava funcionando corretamente.

Como o Power Query é continuamente atualizado, os bugs podem ir e vir rapidamente conforme novas versões são lançadas. Nos últimos anos, eu diria que o software se tornou robusto e agora raramente apresenta problemas.

Esperançosamente, você não encontrará nenhum dos problemas que eu tive; eles já foram resolvidos. Portanto, se você encontrar um problema em que o software não está se comportando conforme documentado, a atualização para a versão mais recente deve resolver o problema.

Créditos: exceloff

Compartilhe!