Excel DAX - Tipos de datos

La tabla es un nuevo tipo de datos en el modelo de datos.

  • Puede utilizar una tabla que contenga varias columnas y varias filas de datos como argumento para una función de DAX.

  • Algunas funciones de DAX devuelven tablas, que se almacenan en la memoria y se pueden utilizar como argumentos para otras funciones de DAX.

Datetime es otro tipo de datos nuevo en el modelo de datos que se utiliza para los valores de fecha y hora. Las funciones de DAX que requieren fecha y / o hora como argumentos, requieren el tipo de datos de fecha y hora.

Resumen de tipos de datos de DAX

A continuación se muestran los tipos de datos admitidos por DAX:

No Señor Tipo de datos y descripción
1

A 64 bit (eight-bytes) integer value

Números que no tienen decimales.

Los números enteros pueden ser números positivos o negativos, pero deben ser números enteros entre 9,223,372,036,854,775,808 (-2 ^ 63) y 9,223,372,036,854,775,807 (2 ^ 63-1).

2

A 64 bit (eight-bytes) real number

Los números reales son números que pueden tener posiciones decimales. Los números reales cubren los siguientes valores:

  • Valores negativos de -1,79E +308 a 2,23E -308

  • Zero

  • Valores positivos de 2.23E -308 a 1.79E + 308

Sin embargo, el número de dígitos significativos está limitado a 15 dígitos decimales.

3

Boolean

  • True
  • False
4

String

Una cadena de datos de caracteres Unicode.

Pueden ser cadenas, números o fechas representadas en formato de texto.

La longitud máxima de la cadena es 268,435,456 caracteres Unicode (256 megacaracteres) o 536,870,912 bytes.

5

datetime

Fechas y horas en una representación de fecha y hora aceptada.

Las fechas válidas son todas las fechas posteriores al 1 de enero de 1900.

6

Currency

El tipo de datos de moneda permite valores entre 922,337,203,685,477.5808 y 922,337,203,685,477.5807 con cuatro dígitos decimales de precisión fija.

7

Blank

Un espacio en blanco es un tipo de datos en DAX que representa y reemplaza valores nulos de SQL. Puede crear un espacio en blanco usando la función EN BLANCO y probar los espacios en blanco usando la función lógica, ESBLANCO.

8

Table

Representa una tabla en el modelo de datos.

Note- El modelo de datos no admite el uso del tipo de datos de variante utilizado en Excel. Por lo tanto, cuando cargue o importe datos, asegúrese de que los datos de cada columna de una tabla sean de un tipo de datos coherente.

Las funciones de DAX funcionan con los siguientes tipos de datos:

  • Valores escalares, incluidas cadenas.
  • Números, tanto enteros como reales.
  • Fechas y horarios.

Las funciones DAX devuelven un error en caso de incompatibilidad de tipos de datos. Asegúrese de que el tipo de datos de cada columna en una tabla sea el requerido. De lo contrario, puede establecer explícitamente el tipo de datos desde la cinta de opciones en la ventana de Power Pivot.

Puede obtener información sobre los tipos de datos necesarios para cada función de DAX en el tutorial: Funciones de DAX en esta biblioteca de tutoriales.

Conversión implícita de tipos de datos en fórmulas DAX

No es necesario que transmita, convierta o especifique de otro modo el tipo de datos de una columna o un valor que use en una fórmula DAX. Cuando usa datos en una fórmula DAX, DAX identifica automáticamente los tipos de datos en las columnas referenciadas y de los valores que ingresa y realiza conversiones implícitas donde sea necesario para completar la operación especificada.

Sin embargo, existen algunas limitaciones en los valores que se pueden convertir correctamente. Si un valor o una columna tiene un tipo de datos que es incompatible con la operación actual, DAX devuelve un error.

Example of implicit data conversion in DAX- Suponga que tiene una fórmula DAX en la que está agregando un número a una fecha. DAX lo interpreta en el contexto de la función que se utiliza. Ambos argumentos se convierten a un tipo de datos común y el resultado se devuelve en el tipo de datos deseado.

El tipo de conversión que se realiza lo determina el operador, que arroja los valores que requiere antes de realizar la operación solicitada. En las siguientes secciones, puede encontrar las tablas de conversiones de datos implícitas para los siguientes operadores:

  • Suma (+)
  • Resta (-)
  • Multiplicación (*)
  • División (/)
  • Operadores de comparación

Cada una de las tablas enumera los operadores e indica la conversión que se realiza en cada tipo de datos en la columna cuando se empareja con el tipo de datos en la fila de intersección.

Tabla de conversión de datos implícitos para la suma (+)

Operador (+) ENTERO MONEDA REAL FECHA Y HORA
INTEGER ENTERO MONEDA REAL FECHA Y HORA
CURRENCY MONEDA MONEDA REAL FECHA Y HORA
REAL REAL REAL REAL FECHA Y HORA
DATETIME FECHA Y HORA FECHA Y HORA FECHA Y HORA FECHA Y HORA

Por ejemplo, si A es del tipo de datos Moneda y B es un tipo de datos Real, mientras calcula A + B, DAX convierte A en Real y lo agrega a B. El resultado será un tipo de datos Real.

Tabla de conversión de datos implícitos para la resta (-)

El encabezado de la fila es el minuendo (lado izquierdo) y el encabezado de la columna es el sustraendo (lado derecho).

Operador (-) ENTERO MONEDA REAL FECHA Y HORA
INTEGER ENTERO MONEDA REAL REAL
CURRENCY MONEDA MONEDA REAL REAL
REAL REAL REAL REAL REAL
DATETIME FECHA Y HORA FECHA Y HORA FECHA Y HORA FECHA Y HORA

Por ejemplo, si A es de tipo de datos Integer y B es de tipo de datos Real, mientras calcula AB, DAX convierte A en Real y resta B de A. El resultado será un tipo de datos Real.

Note - El modelo de datos también admite el operador unario, - (negativo), pero este operador no cambia el tipo de datos del operando.

Tabla de conversión de datos implícitos para multiplicar (*)

Operador (*) ENTERO MONEDA REAL FECHA Y HORA
INTEGER ENTERO MONEDA REAL ENTERO
CURRENCY MONEDA REAL MONEDA MONEDA
REAL REAL MONEDA REAL REAL

Por ejemplo, si A es del tipo de datos Real y B es del tipo de datos Moneda, para calcular A * B, DAX convierte A en tipo de datos Moneda y multiplica A por B. El resultado será un tipo de datos Moneda.

Tabla de conversión de datos implícitos para la división (/)

Operador (/) ENTERO MONEDA REAL FECHA Y HORA
INTEGER REAL MONEDA REAL REAL
CURRENCY REAL MONEDA REAL REAL
REAL REAL REAL REAL REAL
DATETIME REAL REAL REAL REAL

Por ejemplo, si A es del tipo de datos Moneda y B es del tipo de datos Real, mientras calcula A / B, DAX convertirá A en un número Real y realizará la división. El resultado será un tipo de datos Real.

Tabla de conversión de datos implícita para operadores de comparación

En expresiones de comparación, DAX sigue las reglas que se mencionan a continuación:

  • Los valores booleanos se consideran mayores que los valores de cadena.

  • Los valores de cadena se consideran mayores que los valores numéricos o de fecha y hora.

  • Se considera que los valores numéricos y de fecha y hora tienen el mismo rango.

  • No se realizan conversiones de datos implícitas para valores booleanos o de cadena.

  • EN BLANCO o un valor en blanco se convierte a 0 / "" / falso según el tipo de datos del otro valor comparado.

  • Para los tipos numéricos o de fecha y hora, las conversiones de datos se realizan implícitamente como se muestra en la siguiente tabla:

Operador de comparación ENTERO MONEDA REAL FECHA Y HORA
INTEGER ENTERO MONEDA REAL REAL
CURRENCY MONEDA MONEDA REAL REAL
REAL REAL REAL REAL REAL
DATETIME REAL REAL REAL FECHA Y HORA

¿Cómo maneja DAX los espacios en blanco, las cadenas vacías y los valores cero?

En DAX, un valor nulo, un valor en blanco, una celda vacía o un valor faltante están representados por el mismo valor especial, un EN BLANCO.

  • Puede generar un EN BLANCO con la función DAX BLANK.
  • Puede probar si hay un EN BLANCO utilizando la función DAX ISBLANK.

La forma en que DAX maneja los espacios en blanco en fórmulas DAX o funciones DAX depende de la operación individual, como la adición o concatenación o la función DAX específica.

Ejemplos

Fórmula DAX Resultado
EN BLANCO + EN BLANCO BLANCO
EN BLANCO + 5 5
EN BLANCO * 5 BLANCO
5 / EN BLANCO infinito
0 / EN BLANCO Yaya
EN BLANCO / EN BLANCO BLANCO
FALSO O EN BLANCO FALSO
FALSO Y EN BLANCO FALSO
VERDADERO O EN BLANCO CIERTO
VERDADERO Y EN BLANCO FALSO
EN BLANCO O EN BLANCO BLANCO
EN BLANCO Y EN BLANCO BLANCO