Excel DAX - Erros de fórmula

Você pode obter erros ao escrever DAX formulascom sintaxe errada. Campos calculados e colunas calculadas podem conter funções DAX que requerem um tipo específico de argumentos. Os argumentos das funções DAX podem ser tabelas, colunas ou outras funções DAX (funções DAX aninhadas). Como as funções DAX podem retornar tabelas e colunas, deve-se tomar cuidado para verificar se o tipo correto de argumentos é passado para as funções DAX.

Os erros de fórmula DAX podem ser erros de sintaxe ou erros de semântica. Os erros podem ocorrer em tempo de design ou em tempo de execução.

Neste capítulo, você aprenderá sobre alguns erros comuns do DAX, suas causas e como corrigi-los.

Erro DAX: Cálculo Abortado

O seguinte erro pode ocorrer ao tentar criar (tempo de design) ou usar (tempo de execução) um campo calculado com uma função de inteligência de tempo DAX. Em cada caso, um intervalo de datas não contíguo está sendo passado para a função de inteligência de tempo.

“DAX Error: CALCULATION ABORTED: MdxScript (instance) (00, 0) Function 'DATEADD' só funciona com seleções de datas contíguas.”

Causa em tempo de execução

Esse erro pode ser exibido quando um campo calculado com uma função de inteligência de tempo DAX é colocado na área VALORES de uma tabela dinâmica e campos de data, como mês ou trimestre, são selecionados como divisores ou filtros antes de selecionar um ano. Por exemplo, se você tiver dados de três anos - 2014, 2015 e 2016 e tentar usar apenas o mês de março sem selecionar o campo Ano, então os valores não são valores de dados contíguos e você obterá um erro.

Como corrigir o erro em tempo de execução?

No exemplo acima,

  • Primeiro, adicione Ano como um divisor ou filtro e selecione um ano.

  • Em seguida, adicione Mês ou Trimestre como segmentação ou filtro.

  • Em seguida, selecione um ou mais meses ou trimestres para dividir ou filtrar para o ano selecionado.

Causa em tempo de design

As funções de inteligência de tempo DAX requerem uma coluna de data especificada para o argumento de data. A coluna de data deve ter um intervalo contíguo de datas. Esse erro pode ser retornado, se houver um valor de data em uma ou mais linhas na coluna de data que não seja contíguo com os valores de dados nas linhas anteriores e sucessivas.

Se você importou sua tabela contendo datas de uma fonte de dados, lembre-se de que muitas organizações executam processos especiais que varrem tabelas em bancos de dados em busca de valores inválidos e os substituem por um valor específico. Ou seja, se uma data inválida for encontrada, é atribuído a ela um valor de data específico que pode não ser contíguo com outros valores de dados na coluna.

Como corrigir esse erro em tempo de design?

Faça o seguinte para corrigir o erro em tempo de design -

  • Se sua tabela de datas for importada de uma fonte de dados, use Atualizar na janela do Power Pivot para reimportar todas as alterações encontradas na fonte.

  • Verifique os valores em sua coluna de data para certificar-se de que eles estão em uma ordem contínua. Se algum valor for considerado não válido, ele deverá ser corrigido na fonte e a tabela de datas deverá ser atualizada.

  • Crie uma tabela de data e coluna de data separadas em seu modelo de dados. Especifique a nova coluna de data como o argumento de data na fórmula que causa o erro. As tabelas de datas são fáceis de criar e adicionar a um modelo de dados.

Erro semântico DAX - Um exemplo

O seguinte erro DAX é um erro semântico -

“Uma função 'CALCULAR' foi usada em uma expressão verdadeiro-falso que é usada como uma expressão de filtro de tabela. Isso não é permitido. ”

Causa

Este erro pode aparecer quando uma ou mais expressões de filtro não podem ser usadas no contexto do campo calculado ou expressão de coluna calculada.

Na maioria dos casos, esse erro é causado por uma expressão de filtro especificada como um argumento para a função DAX CALCULATE. A função CALCULATE requer filtros definidos como uma expressão booleana ou uma expressão de tabela.

Como corrigir esses erros?

Você pode corrigir esses erros usando a função DAX FILTER para definir filtros como uma expressão de tabela, que pode então ser usada como um argumento para a função DAX CALCULATE.