tipos de datos
TRANSCRIPT
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úmero entero
Valor entero
de 64 bits
(ocho bytes) 1, 2
Números que no tienen posiciones decimales. Los
enteros pueden ser números positivos o negativos, pero
deben ser números enteros comprendidos entre -
9.223.372.036.854.775.808 (-2^63) y
9.223.372.036.854.775.807 (2^63-1).
Decimal
Number
Número real
de 64 bits
(ocho bytes) 1, 2
Los números reales son aquellos que pueden tener
posiciones decimales. Abarcan un amplio intervalo de
valores:
Valores negativos desde -1,79E +308 hasta -2,23E -308
Cero
Valores positivos desde 2,23E -308 hasta 1,79E + 308
Sin embargo, el número de dígitos significativos se
limita a 15 dígitos decimales.
TRUE/FALSE Boolean Valor True o False.
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.
Fecha Fecha y hora
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.
Moneda Currency
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.
N/D En blanco
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.
1 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.
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.
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.
División (/)
En la siguiente tabla, el encabezado de fila es el numerador y el encabezado de columna
es el denominador.
Operador (/)
(Fila/Columna)
INTEGER CURRENCY REAL Fecha y hora
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"
.
=
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 DAX Excel
BLANK + BLANK BLANK 0 (cero)
BLANK +5 5 5
BLANK * 5 BLANK 0 (cero)
5/BLANK Infinito Error
0/BLANK NaN Error
BLANK/BLANK BLANK Error
FALSE OR BLANK FALSE FALSE
FALSE AND BLANK FALSE FALSE
TRUE OR BLANK TRUE TRUE
TRUE AND BLANK FALSE TRUE
BLANK OR BLANK BLANK Error
BLANK AND BLANK BLANK Error
Netgrafia:
http://office.microsoft.com/es-es/excel-help/tipos-de-datos-en-los-modelos-de-datos-
HA102836946.aspx