Anúncio

segunda-feira, 30 de julho de 2018

Conversão implícita e explícita de tipo de dados em fórmulas DAX

Cada função DAX possui requisitos específicos quanto aos tipos de dados usados como entradas e saídas. Por exemplo, algumas funções requerem inteiros para alguns argumentos e datas para outros; outras funções requerem texto ou tabelas.

Se os dados na coluna que você especificar como um 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 string e o DAX analisará a string e tentará convertê-la em um dos formatos de data e hora do Windows.

  • Você pode adicionar TRUE + 1 e obter o resultado 2, porque TRUE é implicitamente convertido no 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 implicitamente converterá a string 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 seqüências de caracteres e, em seguida, concatenará. A expressão a seguir retorna "1234": = 12 & 34.
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 que é executada em cada tipo de dados na coluna quando é emparelhada com o tipo de dados na linha de interseção.

Adição (+)

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 para 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).

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.


 Multiplicação (*)


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 cabeçalho da linha é o numerador e o cabeçalho da coluna é o denominador.


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 que valores de string e valores de string são considerados maiores que 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 string; 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", "Expressão é verdadeira", "Expressão é falsa"), retorna "Expression is true"

= IF ("12"> 12, "Expressão é verdadeira", "Expressão é falsa"), retorna "Expression is true"

= IF ("12" = 12, "Expressão é verdadeira", "Expressão é falsa"), retorna "Expressão é falsa"

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



Manipulando espaços em branco, sequências vazias e valores zero

No DAX, um valor nulo, em branco, célula vazia ou um valor ausente é representado 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 manipulados 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 do DAX e do Microsoft Excel, da mesma forma que os espaços em branco são manipulados.



Fonte: Microsoft

Nenhum comentário:

Postar um comentário