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 -

  • 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.

3

Boolean

  • True
  • False
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