1
resposta

O meu caso está dando um erro ao realizar a conta

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Otávio! Como vai?

Erros de tipo de dados são super comuns quando estamos criando medidas avançadas em DAX, especialmente ao lidar com iterações e tabelas virtuais. A boa notícia é que a própria mensagem de erro na sua imagem nos dá a resposta exata do que está acontecendo!

A mensagem "Operações de comparação DAX não oferecem suporte à comparação de valores do tipo Integer com valores do tipo Text" significa que, em algum ponto da sua medida [Horas Sistema X], você está tentando igualar ou comparar uma coluna que está formatada como número inteiro (Integer) com um valor em texto (Text), ou vice-versa.

Como você está no capítulo de iteração, é muito provável que isso esteja acontecendo dentro de uma função FILTER ou na condição de um CALCULATE. O DAX é uma linguagem fortemente tipada nessas comparações; para ele, o número 1 é completamente diferente do texto "1".

Para resolver isso, você pode seguir os passos abaixo:

1. Ajustar a sintaxe na sua medida DAX

Dê uma olhada na condição que você escreveu na sua medida.

  • Se a sua coluna é do tipo Número Inteiro, você não deve usar aspas no valor procurado.
    • Incorreto: Tabela[Codigo] = "1"
    • Correto: Tabela[Codigo] = 1
  • Se a sua coluna é do tipo Texto, você obrigatoriamente precisa das aspas.

2. Ajustar o Tipo de Dado da Coluna (Recomendado)

A melhor prática é garantir que a coluna no seu modelo de dados tenha o tipo correto.

  • Vá até a aba de exibição de Dados (ou abra o Power Query).
  • Selecione a coluna que você está utilizando na comparação.
  • Altere o tipo de dados dela para Texto ou Número Inteiro, garantindo que bata com o que você está tentando comparar na fórmula.

3. Usar funções de conversão no DAX

Como a própria mensagem de erro sugere, se você não quiser ou não puder alterar o tipo da coluna no modelo, pode forçar a conversão diretamente na sua medida:

  • Use a função VALUE() para transformar um texto em número:
    VALUE(Tabela[ColunaEmTexto]) = 1
  • Ou use FORMAT() para transformar um número em texto.

Revisando a linha da sua comparação e garantindo que "número compare com número" e "texto compare com texto", o seu visual voltará a carregar os dados perfeitamente!