Em um Modelo de Dados, cada coluna tem um tipo de dados associado que especifica o tipo de dados que a coluna pode conter: números inteiros, números decimais, texto, dados monetários, datas e horas e assim por diante. O tipo de dados também determina quais tipos de operações você pode fazer na coluna e quanta memória é necessária para armazenar os valores na coluna.
Se você estiver usando o suplemento Power Pivot, poderá alterar o tipo de dados de uma coluna. Talvez seja necessário fazer isso se uma coluna de data foi importada como uma cadeia de caracteres, mas você precisa que ela seja outra coisa. Para obter mais informações, consulte Definir o tipo de dados de uma coluna no Power Pivot.
Neste artigo
Conversão de tipo de dados implícita e explícita em fórmulas DAX
Tratamento de espaços em branco, cadeias de caracteres vazias e valores zero
Resumo dos tipos de dados
A tabela a seguir lista os tipos de dados com suporte em um Modelo de Dados. Quando você importa dados ou usa um valor em uma fórmula, mesmo que a fonte de dados original contenha um tipo de dados diferente, os dados são convertidos em um desses tipos de dados. Os valores resultantes de fórmulas também usam esses tipos de dados.
| Tipo de dados no Excel | Tipo de dados no DAX | Descrição |
|---|---|---|
| Número inteiro | Um valor inteiro de 64 bits (oito bytes) 1, 2 | Números que não têm casas decimais. Os inteiros podem ser números positivos ou negativos, mas devem ser números inteiros entre -9.223.372.036.854.775.808 (-2^63) e 9.223.372.036.854.775.807 (2^63-1). |
| Número Decimal | Um número real de 64 bits (oito bytes) 1, 2 | Números reais são números que podem ter casas decimais. Os números reais cobrem uma ampla gama de valores: Valores negativos de -1,79E +308 a -2,23E -308 Zero Valores positivos de 2,23E -308 a 1,79E + 308 No entanto, o número de dígitos significativos é limitado a 15 dígitos decimais. |
| VERDADEIRO/FALSO | Booliano | Um valor Verdadeiro ou Falso. |
| Texto | Cadeia de caracteres | Uma cadeia de caracteres Unicode. Podem ser cadeias de caracteres, números ou datas representadas em um formato de texto. O comprimento máximo da cadeia de caracteres é de 268.435.456 caracteres Unicode (256 mega caracteres) ou 536.870.912 bytes. |
| Data | Data/hora | Datas e horas em uma representação de data e hora aceita. As datas válidas são todas as datas posteriores a 1º de janeiro de 1900. |
| Moeda | Moeda | O tipo de dados Conversor de Moedas permite valores entre -922.337.203.685.477,5808 a 922.337.203.685.477,5807 com quatro dígitos decimais de precisão fixa. |
| N/D | Em Branco | Um blank é um tipo de dados no DAX que representa e substitui os nulos SQL. Você pode criar um espaço em branco usando a função BLANK e testar os espaços em branco usando a função lógica, ISBLANK. |
1 As fórmulas DAX não dão suporte a tipos de dados menores do que os listados na tabela.
2 Se você tentar importar dados com valores numéricos muito grandes, a importação poderá falhar com o seguinte erro:
Erro no banco de dados na memória: a coluna '<nome> da coluna' da tabela '<nome> da tabela' contém um valor, '1.7976931348623157e+308', que não tem suporte. A operação foi cancelada.
Esse erro ocorre porque o Power Pivot usa esse valor para representar nulos. Os valores na lista a seguir são sinônimos para o valor nulo:
| Valor |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1,7976931348623158e+308 |
| 2.2250738585072014E-308 |
Remova o valor dos dados e tente importar novamente.
Tipo de dados Tabela
O DAX usa um tipo de dados de tabela em várias funções, como agregações e cálculos de inteligência de dados temporais. Algumas funções exigem uma referência a uma tabela; Outras funções retornam uma tabela que pode ser usada como entrada para outras funções. Em algumas funções que exigem uma tabela como entrada, você pode especificar uma expressão que é avaliada como uma tabela; Para algumas funções, é necessária uma referência a uma tabela base. Para obter informações sobre os requisitos de funções específicas, consulte Referência de função DAX.
Conversão de tipo de dados implícita e explícita em fórmulas DAX
Cada função DAX tem requisitos específicos quanto aos tipos de dados que são usados como entradas e saídas. Por exemplo, algumas funções requerem números inteiros para alguns argumentos e datas para outros; Outras funções exigem texto ou tabelas.
Se os dados na coluna especificada como argumento forem incompatíveis com o tipo de dados exigido pela função, o DAX, em muitos casos, retornará um erro. No entanto, sempre que possível, o DAX tentará converter implicitamente os dados para o tipo de dados necessário. Por exemplo:
- Você pode digitar uma data como uma cadeia de caracteres e o DAX analisará a cadeia de caracteres e tentará convertê-la como um dos formatos de data e hora do Windows.
- Você pode adicionar VERDADEIRO + 1 e obter o resultado 2, porque VERDADEIRO é implicitamente convertido para o número 1 e a operação 1 + 1 é executada.
- Se você adicionar valores em duas colunas e um valor for representado como texto ("12") e o outro como um número (12), o DAX converterá implicitamente a cadeia de caracteres em um número e, em seguida, fará a adição para um resultado numérico. A expressão a seguir retorna 44: = "22" + 22
- Se você tentar concatenar dois números, o Excel os apresentará como cadeias de caracteres e, em seguida, concatenará. A expressão a seguir retorna "1234": = 12 & 34
A tabela a seguir resume as conversões de tipo de dados implícitas que são executadas em fórmulas. O Excel executa conversões implícitas sempre que possível, conforme exigido pela operação especificada.
Tabela de conversões de dados implícitas
O tipo de conversão executada é determinado pelo operador, que converte os valores necessários antes de executar a operação solicitada. Essas tabelas listam os operadores e indicam a conversão executada em cada tipo de dados na coluna quando emparelhado com o tipo de dados na linha de interseção.
Observação
Os tipos de dados de texto não estão incluídos nessas tabelas. Quando um número é representado em formato de texto, em alguns casos, o Power Pivot tentará determinar o tipo de número e representá-lo como um número.
Adição (+)
| Operador (+) | INTEGER | CURRENCY | REAL | Data/hora |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | Data/hora |
| CURRENCY | CURRENCY | CURRENCY | REAL | Data/hora |
| REAL | REAL | REAL | REAL | Data/hora |
| Data/hora | Data/hora | Data/hora | Data/hora | Data/hora |
Por exemplo, se um número real for usado em uma operação de adição em combinação com dados de moeda, ambos os valores serão convertidos em REAL e o resultado será retornado como REAL.
Subtração (-)
Na tabela a seguir, o cabeçalho da linha é o minuendo (lado esquerdo) e o cabeçalho da coluna é o subtraendo (lado direito).
| Operador (-) | INTEGER | CURRENCY | REAL | Data/hora |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Data/hora | Data/hora | Data/hora | Data/hora | Data/hora |
Por exemplo, se uma data for usada em uma operação de subtração com qualquer outro tipo de dados, ambos os valores serão convertidos em datas e o valor retornado também será uma data.
Observação
Os modelos de dados também dão suporte ao operador unário, - (negativo), mas esse operador não altera o tipo de dados do operando.
Multiplicação (*)
| Operador (*) | INTEGER | CURRENCY | REAL | Data/hora |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | INTEGER |
| CURRENCY | CURRENCY | REAL | CURRENCY | CURRENCY |
| REAL | REAL | CURRENCY | REAL | REAL |
Por exemplo, se um inteiro for combinado com um número real em uma operação de multiplicação, ambos os números serão convertidos em números reais e o valor retornado também será REAL.
Divisão (/)
Na tabela a seguir, o cabeçalho da linha é o numerador e o cabeçalho da coluna é o denominador.
| Operador (/) (Linha/Coluna) |
INTEGER | CURRENCY | REAL | Data/hora |
|---|---|---|---|---|
| INTEGER | REAL | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | REAL | CURRENCY | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Data/hora | REAL | REAL | REAL | REAL |
Por exemplo, se um inteiro for combinado com um valor de moeda em uma operação de divisão, ambos os valores serão convertidos em números reais e o resultado também será um número real.
Operadores de comparação
Em expressões de comparação, os valores booleanos são considerados maiores que os valores de cadeia de caracteres, e os valores de cadeia de caracteres são considerados maiores que os valores numéricos ou de data/hora; Números e valores de data/hora são considerados como tendo a mesma classificação. Nenhuma conversão implícita é executada para valores booleanos ou de cadeia de caracteres; BLANK ou um valor em branco é convertido em 0/""/false dependendo do tipo de dados do outro valor comparado.
As expressões DAX a seguir ilustram esse comportamento:
=SE(FALSO()>,"verdadeiro","A expressão é verdadeira", "A expressão é falsa"), retorna "A expressão é verdadeira"
=SE("12">12;"A expressão é verdadeira", "A expressão é falsa"), retorna "A expressão é verdadeira".
=SE("12"=12;"A expressão é verdadeira", "A expressão é falsa"), retorna "A expressão é falsa"
As conversões são executadas implicitamente para tipos numéricos ou de data/hora, conforme descrito na tabela a seguir:
| Operador de comparação | INTEGER | CURRENCY | REAL | Data/hora |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Data/hora | REAL | REAL | REAL | Data/hora |
Tratamento de espaços em branco, cadeias de caracteres vazias e valores zero
No DAX, um valor nulo, em branco, uma célula vazia ou um valor ausente são todos representados pelo mesmo novo tipo de valor, um BLANK. Você também pode gerar espaços em branco usando a função BLANK ou testar espaços em branco usando a função ÉBLANK.
Como os espaços em branco são tratados em operações, como adição ou concatenação, depende da função individual. A tabela a seguir resume as diferenças entre as fórmulas DAX e Microsoft Excel, na forma como os espaços em branco são tratados.
| Expressão | DAX | Excel |
|---|---|---|
| EM BRANCO + EM BRANCO | EM BRANCO | 0 (zero) |
| EM BRANCO +5 | 5 | 5 |
| EM BRANCO * 5 | EM BRANCO | 0 (zero) |
| 5/EM BRANCO | Infinity | Erro |
| 0/EM BRANCO | NaN | Erro |
| EM BRANCO/EM BRANCO | EM BRANCO | Erro |
| FALSO OU EM BRANCO | FALSO | FALSO |
| FALSO E EM BRANCO | FALSO | FALSO |
| VERDADEIRO OU EM BRANCO | VERDADEIRO | VERDADEIRO |
| VERDADEIRO E EM BRANCO | FALSO | VERDADEIRO |
| EM BRANCO OU EM BRANCO | EM BRANCO | Erro |
| EM BRANCO E EM BRANCO | EM BRANCO | Erro |
Para obter detalhes sobre como uma função ou operador específico lida com espaços em branco, consulte os tópicos individuais para cada função DAX, na seção Referência de função DAX.