1. Do Power Query para o modelo
Alguns tipos do Power Query não existem no modelo e mudam ao carregar.
| Tipo no Power Query | Tipo no modelo | Observação |
|---|---|---|
| Data/Hora/Fuso Horário | Data/hora | O fuso é descartado; o valor não se ajusta ao local de quem abre o relatório |
| Data | Data/hora | Fração zero |
| Hora | Data/hora | Parte inteira zero |
| Duração | Número decimal | Em dias fracionários; soma e subtrai de Data/hora corretamente |
| Percentual | Número decimal | O Power Query só aplica máscara de percentual; formate como percentual no modelo |
| Binário | — | Não é suportado no modelo: converta ou remova |
| Any (sem tipo) | Texto | Defina o tipo antes de carregar |
Defina o tipo no Power Query (Table.TransformColumnTypes) ou em
Ferramentas de coluna › Tipo de dados.
2. Conversão implícita nas contas
Quando os dois lados de uma operação têm tipos diferentes, o DAX converte os dois para um tipo comum antes de calcular.
Adição (+)
| Inteiro | Decimal fixo | Decimal | Data/hora | |
|---|---|---|---|---|
| Inteiro | Inteiro | Decimal fixo | Decimal | Data/hora |
| Decimal fixo | Decimal fixo | Decimal fixo | Decimal | Data/hora |
| Decimal | Decimal | Decimal | Decimal | Data/hora |
| Data/hora | Data/hora | Data/hora | Data/hora | Data/hora |
Subtração (-) — linha = valor à esquerda; coluna = valor à direita
| Inteiro | Decimal fixo | Decimal | Data/hora | |
|---|---|---|---|---|
| Inteiro | Inteiro | Decimal fixo | Decimal | Decimal |
| Decimal fixo | Decimal fixo | Decimal fixo | Decimal | Decimal |
| Decimal | Decimal | Decimal | Decimal | Decimal |
| Data/hora | Data/hora | Data/hora | Data/hora | Data/hora |
Multiplicação (*)
| Inteiro | Decimal fixo | Decimal | Data/hora | |
|---|---|---|---|---|
| Inteiro | Inteiro | Decimal fixo | Decimal | Inteiro |
| Decimal fixo | Decimal fixo | Decimal | Decimal fixo | Decimal fixo |
| Decimal | Decimal | Decimal fixo | Decimal | Decimal |
Divisão (/) — linha = numerador; coluna = denominador
| Inteiro | Decimal fixo | Decimal | Data/hora | |
|---|---|---|---|---|
| Inteiro | Decimal | Decimal fixo | Decimal | Decimal |
| Decimal fixo | Decimal fixo | Decimal | Decimal fixo | Decimal |
| Decimal | Decimal | Decimal | Decimal | Decimal |
| Data/hora | Decimal | Decimal | Decimal | Decimal |
Exemplos documentados:
TRUE + 1 -- 2: TRUE vira 1
"22" + 22 -- 44: o texto numérico vira número
12 & 34 -- "1234": os números viram texto3. Conversão nas comparações
- Número e data/hora são comparáveis entre si.
- BLANK vale 0,
""ou FALSE, conforme o outro lado (só==não faz isso). - O DAX não converte texto nem lógico em comparação.
⚠️ A documentação da Microsoft diverge sobre texto × número. A página
de tipos de dados do Power BI diz que "12" > 12 devolve verdadeiro
(texto seria "maior" que número) e que "12" = 12 devolve falso. A
referência de operadores diz que "1" > 0 dá erro. Não dependa de
nenhum dos dois comportamentos: converta explicitamente com VALUE() ou
FORMAT() antes de comparar.
4. Precisão do Número decimal
O Número decimal (Double) guarda um valor aproximado (IEEE 754, até
15 dígitos). Isso aparece em três situações:
- Igualdade e ordenação:
=,>,<,>=,<=podem falhar entre valores que parecem iguais. RANKX: calcula o valor duas vezes e pode ranquear errado por uma diferença invisível.- Somas grandes com valores positivos e negativos: o resultado depende da ordem das linhas.
Como evitar:
- Mude a coluna para Número decimal fixo ou Número inteiro.
- Ou arredonde antes de comparar ou ranquear:
Ranking de Clientes =
RANKX (
ALL ( Cliente[Nome do Cliente] ),
ROUND ( [Total de Vendas], 2 )
)O Best Practice Analyzer sinaliza colunas Double com a regra "Do not use
floating point data types" (veja Boas Práticas).
Para BLANK em contas e comparações, veja Operadores DAX.