Tipos de Dados em Modelos de Dados

Aplica-se A
Excel para Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Num 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, etc. O tipo de dados também determina os tipos de operações que pode efetuar na coluna e a quantidade de memória necessária para armazenar os valores na coluna.

Se estiver a utilizar o suplemento Power Pivot, pode alterar o tipo de dados de uma coluna. Poderá ter de o fazer se tiver importado uma coluna de data como uma cadeia, mas precisa que seja outra coisa. Para obter mais informações, consulte Definir o tipo de dados de uma coluna no Power Pivot.

Neste artigo

Resumo de tipos de dados

A seguinte tabela lista os tipos de dados suportados num Modelo de Dados. Quando importa dados ou utiliza um valor numa fórmula, mesmo que a origem de dados original contenha um tipo de dados diferente, os dados são convertidos num destes tipos de dados. Os valores resultantes de fórmulas também utilizam estes 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 sem casas decimais. Os 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 Os números reais são números que podem ter casas decimais. Os números reais abrangem uma vasta gama de valores:
Valores negativos de -1,79E, +308 até -2,23E, -308
Zero
Valores positivos de 2,23E-308 até 1,79E+308
No entanto, o número de algarismos significativos está limitado a 15 algarismos decimais.
VERDADEIRO/FALSO booleano Um valor Verdadeiro ou Falso.
Text Cadeia Uma cadeia de dados de caráter Unicode. Podem ser cadeias, números ou datas representados num formato de texto.
O comprimento máximo da cadeia é de 268.435.456 carateres Unicode (256 carateres mega) ou 536.870.912 bytes.
Data Data/hora Datas e horas numa representação data/hora aceite.
As datas válidas são todas as datas posteriores a 1 de janeiro de 1900.
Moeda Moeda O tipo de dados Moeda 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 espaço em branco é um tipo de dados no DAX que representa e substitui os nulos SQL. Pode criar um espaço em branco utilizando a função EM BRANCO e testar a existência de espaços em branco com a função lógica É.CÉL.VAZIA.

1 As fórmulas do DAX não suportam tipos de dados inferiores aos listados na tabela.

2 Se tentar importar dados com valores numéricos muito elevados, a importação poderá falhar com o seguinte erro:

Erro na base 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.

Este erro ocorre porque o Power Pivot utiliza esse valor para representar valores nulos. Os valores apresentados na lista que se segue são sinónimos de valor nulo:

Value
9223372036854775807
-9223372036854775808
1,7976931348623158e+308
2.2250738585072014e-308

Remova o valor dos seus dados e tente importar novamente.

Tipo de dados de tabela

O DAX utiliza um tipo de dados de tabela em muitas funções, tais como agregações e cálculos de análise de tempo. Algumas funções requerem uma referência a uma tabela; Outras funções devolvem uma tabela que pode depois ser utilizada como entrada para outras funções. Em algumas funções que exigem uma tabela como entrada, você pode especificar uma expressão que seja 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ções DAX.

Conversão implícita e explícita de tipos de dados 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 requerem texto ou tabelas.

Se os dados na coluna que especificar como argumento forem incompatíveis com o tipo de dados exigido pela função, o DAX devolverá em muitos casos um erro. No entanto, sempre que possível, o DAX tentará converter implicitamente os dados para o tipo de dados necessário. Por exemplo:

  • Pode introduzir uma data como uma cadeia e o DAX irá analisar a cadeia e tentar convertê-la como um dos formatos de data e hora do Windows.
  • Pode adicionar VERDADEIRO + 1 e obter o resultado 2, porque VERDADEIRO é implicitamente convertido no número 1 e a operação 1 + 1 é executada.
  • Se adicionar valores em duas colunas e um valor for representado como texto ("12") e o outro como número (12), o DAX converte implicitamente a cadeia de carateres num número e, em seguida, faz a adição para um resultado numérico. A seguinte expressão devolve 44: = "22" + 22
  • Se tentar concatenar dois números, o Excel irá apresentá-los como cadeias e, em seguida, concatenar. A seguinte expressão devolve "1234": = 12 & 34

A seguinte tabela resume as conversões implícitas de tipos de dados que são efetuadas em fórmulas. O Excel efetua 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 que é executado é determinado pelo operador, que projeta os valores necessários antes de executar a operação solicitada. Estas tabelas listam os operadores e indicam a conversão efetuada em cada tipo de dados na coluna quando este é emparelhado com o tipo de dados na linha de interseção.

Nota

Os tipos de dados de texto não são incluídos nestas tabelas. Quando um número é representado como num formato de texto, em alguns casos, o Power Pivot irá 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 utilizado numa operação de adição em combinação com dados de moeda, ambos os valores são convertidos em REAIS e o resultado é devolvido como REAL.

Subtração (-)

Na tabela seguinte, o cabeçalho da linha é o minuend (lado esquerdo) e o cabeçalho 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 utilizada numa operação de subtração com qualquer outro tipo de dados, ambos os valores são convertidos em datas e o valor devolvido é também uma data.

Nota

Os modelos de dados também suportam o operador unário, - (negativo), mas este 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 número inteiro for combinado com um número real numa operação de multiplicação, ambos os números são convertidos em números reais e o valor devolvido também é REAL.

Divisão (/)

Na tabela seguinte, 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 número inteiro for combinado com um valor de moeda numa operação de divisão, ambos os valores são convertidos em números reais e o resultado também é um número real.

Operadores de comparação

Em expressões de comparação, os valores booleanos são considerados maiores do que os valores de cadeia e os valores de cadeia são considerados maiores do que os valores numéricos ou de data/hora; Os números e os valores de data/hora são considerados como tendo a mesma ordem. Não são realizadas conversões implícitas para valores Booleanos ou de cadeia; O valor em branco ou em branco é convertido em 0/""/falso, consoante o tipo de dados do outro valor comparado.

As seguintes expressões DAX ilustram esse comportamento:

=SE(FALSO()>"verdadeiro";"A expressão é verdadeira", "A expressão é falsa"), devolve "A expressão é verdadeira"

=SE("12">12;"A expressão é verdadeira", "A expressão é falsa"), devolve "A expressão é verdadeira".

=SE("12"=12;"A expressão é verdadeira", "A expressão é falsa"), devolve "A expressão é falsa"

As conversões são efetuadas implicitamente para tipos numéricos ou de data/hora, conforme descrito na tabela seguinte:

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

Início da Página

Lidar com cadeias em branco, cadeias vazias e valores zero

No DAX, um valor nulo, em branco, uma célula vazia ou um valor em falta são representados pelo mesmo novo tipo de valor, um BLANK. Também pode gerar células em branco com a função EM BRANCO ou testar a existência de células em branco com a função É.CÉL.VAZIA.

A forma como as células em branco são processadas em operações, tais como adição ou concatenação, depende da função individual. A tabela seguinte resume as diferenças entre as fórmulas do DAX e do Microsoft Excel, na forma como as fórmulas em branco são processadas.

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 Infinito Erro
0/EM BRANCO NaN Erro
EM BRANCO/EM BRANCO EM BRANCO Erro
FALSO OU EM BRANCO FALSE FALSE
FALSO E EM BRANCO FALSE FALSE
VERDADEIRO OU EM BRANCO TRUE TRUE
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 determinada função ou operador lida com células em branco, consulte os tópicos individuais de cada função DAX na secção Referência de Funções DAX.

Início da Página