Em um Modelo de Dados, cada coluna tem um tipo de dados associado que especifica o tipo de dados que a coluna pode manter: 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ário para armazenar os valores na coluna.
Se você estiver usando o Power Pivot de dados, poderá alterar o tipo de dados de uma coluna. Você pode precisar 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 em Power Pivot.
Neste artigo
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 em 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. Números 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 abrangem uma ampla variedade 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. |
TRUE/FALSE |
Booliano |
Um valor True ou False. |
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. Datas válidas são todas as datas após 1º de janeiro de 1900. |
Moeda |
Moeda |
Conversor de Moedas tipo de dados 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 em branco é um tipo de dados no DAX que representa e substitui SQL nulos. Você pode criar um espaço em branco usando a função BLANK e testar espaços em branco usando a função lógica ISBLANK. |
1 As fórmulas DAX não suportam tipos de dados menores do que os listados na tabela.
2 Se você tentar importar dados que têm valores numéricos muito grandes, a importação poderá falhar com o seguinte erro:
Erro de 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 é suportado. A operação foi cancelada.
Esse erro ocorre porque Power Pivot usa esse valor para representar nulos. Os valores na lista a seguir são sinônimos do valor nulo:
Limite máximo |
|
---|---|
9223372036854775807 |
|
-9223372036854775808 |
|
1,7976931348623158e+308 |
|
2.2250738585072014e-308 |
Remova o valor de seus dados e tente importar novamente.
Tipo de dados de tabela
O DAX usa um tipo de dados de tabela em várias funções, como agregação e cálculos de inteligência de tempo. 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, uma referência a uma tabela base é necessária. Para obter informações sobre os requisitos de funções específicas, consulte Referência de Função DAX.
Conversão implícita e explícita de tipo de dados em fórmulas DAX
Cada função DAX tem requisitos específicos quanto aos tipos de dados usados como entradas e saídas. Por exemplo, algumas funções exigem inteiros para alguns argumentos e datas para outras; outras funções exigem texto ou tabelas.
Se os dados na coluna que você especificar como argumento for incompatível 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 no 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á castiá-la como um dos formatos Windows data e hora.
-
Você pode adicionar TRUE + 1 e obter o resultado 2, porque TRUE é implicitamente convertido para o número 1 e a operação 1+1 é executada.
-
Se você adicionar valores em duas colunas e um valor acontecer de ser representado como texto ("12") e o outro como um número (12), o DAX converte implicitamente a cadeia de caracteres em um número e, em seguida, faz a adição para um resultado numérico. A expressão a seguir retorna 44: = "22" + 22
-
Se você tentar concatenar dois números, Excel os apresentará como cadeias de caracteres e concatenar. A expressão a seguir retorna "1234": = 12 & 34
A tabela a seguir resume as conversões implícitas de tipo de dados executadas em fórmulas. Excel realiza conversões implícitas sempre que possível, conforme exigido pela operação especificada.
Tabela de conversões implícitas de dados
O tipo de conversão que é executado é determinado pelo operador, que lança os valores necessários antes de executar a operação solicitada. Essas tabelas listam os operadores e indicam a conversão realizada em cada tipo de dados na coluna quando ele é emparelhado com o tipo de dados na linha de interseção.
Observação: Os tipos de dados de texto não são incluídos nessas tabelas. Quando um número é representado como em um formato de texto, em alguns casos, 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 header da linha é o minuend (lado esquerdo) e o header da coluna é o subtrahend (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 de retorno também será uma data.
Observação: Os modelos de dados também suportam o operador nãoary, - (negativo), mas esse operador não altera o tipo de dados do operador.
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 de retorno também será REAL.
Divisão (/)
Na tabela a seguir, o header da linha é o numerador e o header 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, valores booleanos são considerados maiores do que valores de cadeia de caracteres e valores de cadeia de caracteres são considerados maiores do que valores numéricos ou de data/hora; números e valores de data/hora são considerados com a mesma classificação. Nenhuma conversão implícita é executada para valores booleano ou cadeia de caracteres; BLANK ou um valor em branco é convertido em 0/""/false, dependendo do tipo de dados do outro valor comparado.
As seguintes expressões DAX ilustram esse comportamento:
=IF(FALSE()>"true","Expression is true", "Expression is false"), returns "Expression is true"
=IF("12">12,"Expression is true", "Expression is false"), returns "Expression is true".
=IF("12"=12,"Expressão é true", "Expressão é false"), retorna "Expressão é false"
As conversões são realizadas 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 |
Manipulando valores em branco, cadeias de caracteres vazias e zero
No DAX, um valor nulo, em branco, uma célula vazia ou um valor ausente são 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 ISBLANK.
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 o DAX e Microsoft Excel fórmulas, na maneira como os espaços em branco são tratados.
Expressão |
DAX |
Excel |
---|---|---|
BLANK + BLANK |
BLANK |
0 (zero) |
BLANK +5 |
5 |
5 |
BLANK * 5 |
BLANK |
0 (zero) |
5/BLANK |
Infinito |
Erro |
0/BLANK |
NaN |
Erro |
BLANK/BLANK |
BLANK |
Erro |
FALSE OU BLANK |
FALSO |
FALSO |
FALSE E BLANK |
FALSO |
FALSO |
VERDADEIRO OU EM BRANCO |
VERDADEIRO |
VERDADEIRO |
VERDADEIRO E EM BRANCO |
FALSO |
VERDADEIRO |
EM BRANCO OU EM BRANCO |
BLANK |
Erro |
EM BRANCO E EM BRANCO |
BLANK |
Erro |
Para obter detalhes sobre como uma determinada função ou operador lida com espaços em branco, consulte os tópicos individuais para cada função DAX, na seção Referência da Função DAX.