Excel DAX - Tipos de dados
Tabela é um novo tipo de dados no Modelo de Dados.
Você pode usar uma tabela contendo várias colunas e várias linhas de dados como um argumento para uma função DAX.
Algumas funções DAX retornam tabelas, que são armazenadas na memória e podem ser usadas como argumentos para outras funções DAX.
Datetime é outro novo tipo de dados no Modelo de Dados que é usado para valores de data e hora. As funções DAX que requerem data e / ou hora como argumentos, requerem o tipo de dados datetime.
Resumo dos tipos de dados DAX
A seguir estão os tipos de dados suportados pelo DAX -
Sr. Não | Tipo de dados e descrição |
---|---|
1 | A 64 bit (eight-bytes) integer value Números sem 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). |
2 | A 64 bit (eight-bytes) real number Os números reais são números que podem ter casas decimais. Os números reais cobrem os seguintes valores -
No entanto, o número de dígitos significativos é limitado a 15 dígitos decimais. |
3 | Boolean
|
4 | String Uma string de dados de caracteres Unicode. Podem ser strings, números ou datas representadas em formato de texto. O comprimento máximo da string é de 268.435.456 caracteres Unicode (256 mega caracteres) ou 536.870.912 bytes. |
5 | datetime 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. |
6 | Currency O tipo de dados de 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. |
7 | Blank Um espaço em branco é um tipo de dados em DAX que representa e substitui nulos SQL. Você pode criar um espaço em branco usando a função EM BRANCO e testar os espaços em branco usando a função lógica ISBLANK. |
8 | Table Representa uma tabela no modelo de dados. |
Note- O modelo de dados não oferece suporte ao uso do tipo de dados variante usado no Excel. Portanto, ao carregar ou importar dados, certifique-se de que os dados em cada coluna de uma tabela sejam de tipo consistente.
As funções DAX funcionam com os seguintes tipos de dados -
- Valores escalares, incluindo strings.
- Números, inteiros e reais.
- Datas e horários.
As funções DAX retornam erro em caso de incompatibilidade de tipo de dados. Certifique-se de que o tipo de dados de cada coluna em uma tabela seja o necessário. Caso contrário, você pode definir explicitamente o tipo de dados da Faixa de Opções na janela do Power Pivot.
Você pode aprender sobre os tipos de dados necessários para cada função DAX no tutorial - Funções DAX nesta biblioteca de tutoriais.
Conversão implícita de tipo de dados em fórmulas DAX
Você não precisa lançar, converter ou de outra forma especificar o tipo de dados de uma coluna ou um valor que você usa em uma fórmula DAX. Quando você usa dados em uma fórmula DAX, o DAX identifica automaticamente os tipos de dados em colunas referenciadas e os valores que você digita e executa conversões implícitas quando necessário para concluir a operação especificada.
No entanto, existem algumas limitações nos valores que podem ser convertidos com êxito. Se um valor ou coluna tiver um tipo de dados incompatível com a operação atual, o DAX retornará um erro.
Example of implicit data conversion in DAX- Suponha que você tenha uma fórmula DAX em que está adicionando um número a uma data. O DAX o interpreta no contexto da função usada. Ambos os argumentos são convertidos em um tipo de dados comum e o resultado é retornado no tipo de dados pretendido.
O tipo de conversão realizada é determinado pelo operador, que converte os valores necessários antes de realizar a operação solicitada. Nas seções a seguir, você pode encontrar as tabelas de conversões de dados implícitas para os seguintes operadores -
- Adição (+)
- Subtração (-)
- Multiplicação (*)
- Divisão (/)
- Operadores de comparação
Cada uma das tabelas lista os operadores e indica a conversão que é executada em cada tipo de dados na coluna quando é emparelhado com o tipo de dados na linha de intersecção.
Tabela de conversão de dados implícitos para adição (+)
Operador (+) | INTEIRO | MOEDA | REAL | DATA HORA |
---|---|---|---|---|
INTEGER | INTEIRO | MOEDA | REAL | DATA HORA |
CURRENCY | MOEDA | MOEDA | REAL | DATA HORA |
REAL | REAL | REAL | REAL | DATA HORA |
DATETIME | DATA HORA | DATA HORA | DATA HORA | DATA HORA |
Por exemplo, se A for do tipo de dados Moeda e B for um tipo de dados Real, então, ao calcular A + B, o DAX converte A em Real e o adiciona a B. O resultado será um tipo de dados Real.
Tabela de conversão de dados implícitos para subtração (-)
O cabeçalho da linha é o minuendo (lado esquerdo) e o cabeçalho da coluna é o subtraendo (lado direito).
Operador (-) | INTEIRO | MOEDA | REAL | DATA HORA |
---|---|---|---|---|
INTEGER | INTEIRO | MOEDA | REAL | REAL |
CURRENCY | MOEDA | MOEDA | REAL | REAL |
REAL | REAL | REAL | REAL | REAL |
DATETIME | DATA HORA | DATA HORA | DATA HORA | DATA HORA |
Por exemplo, se A for do tipo de dados Inteiro e B for do tipo de dados Real, então, ao calcular AB, DAX converte A em Real e subtrai B de A. O resultado será um tipo de dados Real.
Note - O Modelo de Dados também oferece suporte ao operador unário, - (negativo), mas esse operador não altera o tipo de dados do operando.
Tabela de conversão de dados implícitos para multiplicação (*)
Operador (*) | INTEIRO | MOEDA | REAL | DATA HORA |
---|---|---|---|---|
INTEGER | INTEIRO | MOEDA | REAL | INTEIRO |
CURRENCY | MOEDA | REAL | MOEDA | MOEDA |
REAL | REAL | MOEDA | REAL | REAL |
Por exemplo, se A for do tipo de dados Real e B for do tipo de dados Moeda, para calcular A * B, o DAX converte A em tipo de dados Moeda e multiplica A por B. O resultado será um tipo de dados Moeda.
Tabela de conversão de dados implícitos para divisão (/)
Operador (/) | INTEIRO | MOEDA | REAL | DATA HORA |
---|---|---|---|---|
INTEGER | REAL | MOEDA | REAL | REAL |
CURRENCY | REAL | MOEDA | REAL | REAL |
REAL | REAL | REAL | REAL | REAL |
DATETIME | REAL | REAL | REAL | REAL |
Por exemplo, se A for do tipo de dados Moeda e B for do tipo de dados Real, durante o cálculo de A / B, o DAX converterá A em número real e realizará a divisão. O resultado será um tipo de dados Real.
Tabela de conversão de dados implícita para operadores de comparação
Em expressões de comparação, DAX segue as regras mencionadas abaixo -
Os valores booleanos são considerados maiores que os valores de string.
Os valores da string são considerados maiores do que os valores numéricos ou de data e hora.
Números e valores de data e hora são considerados como tendo a mesma classificação.
Nenhuma conversão de dados implícita é executada para valores booleanos ou de string.
BLANK ou um valor em branco é convertido em 0 / "" / false dependendo do tipo de dados do outro valor comparado.
Para tipos numéricos ou datetime, as conversões de dados são realizadas implicitamente conforme mostrado na tabela a seguir -
Operador de comparação | INTEIRO | MOEDA | REAL | DATA HORA |
---|---|---|---|---|
INTEGER | INTEIRO | MOEDA | REAL | REAL |
CURRENCY | MOEDA | MOEDA | REAL | REAL |
REAL | REAL | REAL | REAL | REAL |
DATETIME | REAL | REAL | REAL | DATA HORA |
Como o DAX lida com espaços em branco, strings vazias e valores zero?
No DAX, um nulo, um valor em branco, uma célula vazia ou um valor ausente são todos representados pelo mesmo valor especial, um BLANK.
- Você pode gerar um BLANK com a função DAX BLANK.
- Você pode testar um BLANK usando a função DAX ISBLANK.
O modo como o DAX lida com os espaços em branco nas fórmulas DAX ou nas funções DAX depende da operação individual, como adição ou concatenação ou da função DAX específica.
Exemplos
Fórmula DAX | Resultado |
---|---|
EM BRANCO + EM BRANCO | EM BRANCO |
EM BRANCO + 5 | 5 |
EM BRANCO * 5 | EM BRANCO |
5 / EM BRANCO | Infinidade |
0 / EM BRANCO | NaN |
EM BRANCO / EM BRANCO | EM BRANCO |
FALSO OU EM BRANCO | FALSO |
FALSO E EM BRANCO | FALSO |
VERDADEIRO OU EM BRANCO | VERDADEIRO |
VERDADEIRO E EM BRANCO | FALSO |
EM BRANCO OU EM BRANCO | EM BRANCO |
EM BRANCO E EM BRANCO | EM BRANCO |