1. Tipos de datos
En un modelo de datos, cada columna tiene un tipo de datos asociado que especifica el
tipo de datos que la columna puede contener: números enteros, números decimales,
texto, datos de moneda, fechas y horas, etcétera. El tipo de datos también determina qué
tipos de operaciones puede hacer en la columna y cuánta memoria se necesita para
almacenar los valores de la columna.
Si está utilizando el complemento PowerPivot, puede cambiar el tipo de datos de una
columna. Puede ser necesario hacerlo si una columna de fecha se importó como una
cadena, pero se necesita que sea algo más. Para obtener más información, vea
Establecer el tipo de datos de una columna en PowerPivot.
Resumen de los tipos de datos
La tabla siguiente se enumeran los tipos de datos admitidos en un modelo de datos.
Cuando se importan datos o se usa un valor en una fórmula, incluso si el origen de datos
contiene un tipo de datos distinto, los datos se convierten a uno de estos tipos de datos.
Los datos que se producen como resultado de las fórmulas también usan estos tipos de
datos.
Tipo de datos
en Excel
Tipo de
datos en
DAX
Descripción
Números que no tienen posiciones decimales. Los
Valor entero
enteros pueden ser números positivos o negativos, pero
de 64 bits
Número entero
deben ser números enteros comprendidos entre (ocho bytes)
9.223.372.036.854.775.808 (-2^63) y
1, 2
9.223.372.036.854.775.807 (2^63-1).
Los números reales son aquellos que pueden tener
posiciones decimales. Abarcan un amplio intervalo de
valores:
Decimal
Number
Número real Valores negativos desde -1,79E +308 hasta -2,23E -308
de 64 bits
(ocho bytes) Cero
1, 2
Valores positivos desde 2,23E -308 hasta 1,79E + 308
TRUE/FALSE Boolean
Sin embargo, el número de dígitos significativos se
limita a 15 dígitos decimales.
Valor True o False.
2. Texto
String
Cadena de datos de carácter Unicode. Pueden ser
cadenas, números o fechas representados en un formato
de texto.
La longitud de cadena máxima es 268.435.456 caracteres
Unicode (256 caracteres mega) o 536.870.912 bytes.
Fechas y horas en una representación de fecha y hora
aceptada.
Fecha
Fecha y hora
Moneda
Currency
N/D
En blanco
1
Las fechas válidas son todas las fechas posteriores al 1
de enero de 1900.
El tipo de datos de moneda permite los valores
comprendidos entre -922.337.203.685.477,5808 y
922.337.203.685.477,5807 con cuatro dígitos decimales
de precisión fija.
Un tipo en blanco es un tipo de datos de DAX que
representa y reemplaza los valores NULL de SQL. Un
valor en blanco se puede crear con la función BLANK y
se puede comprobar si es tal con la función lógica
ISBLANK.
Las fórmulas DAX no admiten tipos de datos menores que los enumerados en la tabla.
2
Si intenta importar datos con valores numéricos muy elevados, es posible que la
importación no se realice correctamente con el error siguiente:
Error de la base de datos en memoria: La columna '<nombre de columna>' de la tabla
'<nombre de la tabla>' contiene un valor, '1.7976931348623157e+308' que no se
admite. La operación se ha cancelado.
Este error se produce porque PowerPivot utiliza ese valor para representar los valores
nulos. Los valores de la siguiente lista son sinónimos del valor nulo:
Valor
9223372036854775807
-9223372036854775808
1.7976931348623158e+308
2.2250738585072014e-308
Quite el valor de los datos e intente volver a importarlo.
3. Tipo de datos de tabla
DAX usa un tipo de datos table en muchas funciones, como agregaciones y cálculos de
inteligencia de tiempo. Algunas funciones requieren una referencia a una tabla y otras
devuelven una tabla que se puede usar como entrada para otras funciones. En algunas
funciones que requieren una tabla como entrada, puede especificar una expresión que se
evalúa como una tabla; para otras funciones, se requiere una referencia a una tabla base.
Conversiones implícitas y explícitas de tipos de datos en
fórmulas DAX
Cada función DAX tiene requisitos concretos acerca de los tipos de datos que se usan
como entradas y salidas. Por ejemplo, algunas funciones requieren enteros para algunos
argumentos y fechas para otros; otras funciones requieren texto o tablas.
Si los datos de la columna que especifique como argumento son incompatibles con el
tipo de datos requerido por la función, en muchos casos DAX devolverá un error. No
obstante, siempre que sea posible DAX intentará convertir implícitamente los datos al
tipo requerido. Por ejemplo:
Una fecha se puede escribir como una cadena y DAX la analizará, e intentará
convertirla a uno de los formatos de fecha y hora de Windows.
Se pueden sumar TRUE + 1 y obtener el resultado 2, ya que TRUE se convierte
implícitamente al número 1 y se realiza la operación 1+1.
Si suma los valores de dos columnas y uno está representado como texto ("12") y el
otro como número (12), DAX convierte implícitamente la cadena a un número y, a
continuación, realiza la suma para obtener un resultado numérico. La expresión
siguiente devuelve 44: = "22" + 22
Si intenta concatenar dos números, Excel los presentará como cadenas y, a
continuación, los concatenará. La siguiente expresión devuelve "1234": = 12 & 34
En la tabla siguiente se resumen las conversiones implícitas de tipo de datos que se
realizan en las fórmulas. Excel realiza conversiones implícitas siempre que sea posible,
según requiera la operación especificada.
Tabla de conversiones de datos implícitas
El tipo de conversión que se realiza está determinada por el operador, que convierte los
valores que requiere antes de realizar la operación solicitada. En estas tablas se
enumeran los operadores y se indica la conversión que se lleva a cabo en cada tipo de
datos de la columna cuando se empareja con el tipo de datos de la fila de intersección.
Nota Los tipos de datos de texto no se incluyen en estas tablas. Cuando un número se
representa en formato de texto, en algunos casos, PowerPivot intentará determinar el
tipo de número y representarlo como un número.
4. Suma (+)
Operador (+) INTEGER CURRENCY REAL Fecha y hora
INTEGER
INTEGER CURRENCY REAL
Fecha y hora
CURRENCY CURRENCY CURRENCY REAL
Fecha y hora
REAL
REAL
REAL
REAL
Fecha y hora
Fecha y hora Fecha y hora Fecha y hora Fecha y hora Fecha y hora
Por ejemplo, si se usa un número real en una operación de suma en combinación con
datos de moneda, ambos valores se convierten en REAL y el resultado se devuelve
como REAL.
Resta (-)
En la siguiente tabla el encabezado de fila es el minuendo (el lado de la izquierda) y el
encabezado de columna es el substraendo (el lado de la derecha).
Operador (-) INTEGER CURRENCY REAL Fecha y hora
INTEGER INTEGER CURRENCY REAL
REAL
CURRENCY CURRENCY CURRENCY REAL
REAL
REAL
REAL
REAL
REAL
REAL
Fecha y hora Fecha y hora Fecha y hora Fecha y hora Fecha y hora
Por ejemplo, si se usa una fecha en una operación de resta con otro tipo de datos, ambos
valores se convierten en fechas y el valor devuelto también es una fecha.
Nota Los modelos de datos también admiten el operador unario - (negativo), pero
este operador no cambia el tipo de datos del operando.
Multiplicación (*)
Operador (*) INTEGER CURRENCY
REAL
Fecha y hora
INTEGER
INTEGER CURRENCY REAL
INTEGER
CURRENCY CURRENCY REAL
CURRENCY CURRENCY
REAL
REAL
CURRENCY REAL
REAL
Por ejemplo, si un entero se combina con un número real en una operación de
multiplicación, ambos números se convierten a números reales y el valor devuelto
también es REAL.
5. División (/)
En la siguiente tabla, el encabezado de fila es el numerador y el encabezado de columna
es el denominador.
Operador (/)
INTEGER CURRENCY
REAL
Fecha y hora
(Fila/Columna)
INTEGER
REAL
CURRENCY REAL
REAL
CURRENCY CURRENCY REAL
CURRENCY REAL
REAL
REAL
REAL
REAL
REAL
Fecha y hora
REAL
REAL
REAL
REAL
Por ejemplo, si un entero se combina con un valor de moneda en una operación de
división, ambos valores se convierten a números reales y el resultado también es un
número real.
Operadores de comparación
En las expresiones de comparación, los valores booleanos se consideran mayores que
los valores de cadena y los valores de cadena se consideran mayores que los valores
numéricos o de fecha u hora; se considera que los números y valores de fecha u hora
tienen el mismo rango. No se realiza ninguna conversión implícita para los valores
booleanos o de cadena; BLANK o un valor en blanco se convierte en 0/""/false, según
el tipo de datos del otro valor comparado.
Las siguientes expresiones de DAX muestran este comportamiento:
=
IF(
FALSE()>"
true","Expression
is true", "Expression is false"), returns "Expression is
true"
=
IF(
"12">12,"Expression is true", "Expression is false"), returns
"Expression is true"
.
=
6. IF(
"12"=12,"Expression is true", "Expression is false"), returns
"Expression is false"
Las conversiones se realizan implícitamente para los tipos numéricos o de fecha y hora,
tal y como se describe en la siguiente tabla:
Operador de comparación INTEGER CURRENCY REAL Fecha y hora
INTEGER
INTEGER CURRENCY REAL REAL
CURRENCY
CURRENCY CURRENCY REAL REAL
REAL
REAL
REAL
REAL REAL
Fecha y hora
REAL
REAL
REAL Fecha y hora
Controlar valores en blanco, cadenas vacías y valores
cero
En DAX, un valor NULL, el valor en blanco, la celda vacía o un valor que falta se
representan todos mediante el mismo tipo de valor, un valor en blanco. También se
pueden generar valores en blanco con la función BLANK o comprobar los valores en
blanco con la función ISBLANK.
Depende de cada función el modo en que se tratan en las operaciones, como suma o
concatenación. En la tabla siguiente se resumen las diferencias entre las fórmulas de
DAX y de Microsoft Excel con respecto al modo en que se tratan los valores en blanco.
Expresión
BLANK + BLANK
BLANK +5
BLANK * 5
5/BLANK
0/BLANK
BLANK/BLANK
FALSE OR BLANK
FALSE AND BLANK
TRUE OR BLANK
TRUE AND BLANK
BLANK OR BLANK
DAX Excel
BLANK 0 (cero)
5
5
BLANK 0 (cero)
Infinito Error
NaN
Error
BLANK Error
FALSE FALSE
FALSE FALSE
TRUE TRUE
FALSE TRUE
BLANK Error
7. BLANK AND BLANK BLANK Error
Netgrafia:
http://office.microsoft.com/es-es/excel-help/tipos-de-datos-en-los-modelos-de-datosHA102836946.aspx