Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
alexis_garcia
Creator II
Creator II

Problema con Date en Crosstable

Hola a todos,

Tengo el siguiente excel:

I2.PNG

Haciendo CrossTable:

CrossTable(Fecha,Estado,1)

LOAD ID

FROM .....

Intento tener en el campo Fecha las Fechas de arriba y en el campo Estado ( x, 1,... ), pero tengo el problema de que no puedo formatear la fecha, ya que no la contempla con formato fecha.

Hago Resident de esta tabla y formateo la fecha, pero me sale en blanco.

A qué puede ser debido?  Se puede solucionar?

Gracias.

Un saludo.

1 Solution

Accepted Solutions
rubenmarin

Con este script he conseguido que en QlikView la fecha llegue con formato de fecha:

Excel:

CrossTable(Fecha, Datos)

LOAD *

FROM [.\Pruebas.xlsx] (ooxml, embedded labels, table is Hoja1);

Datos:

NoConcatenate LOAD ID, Date(Num#(Fecha)) as Fecha, Datos Resident Excel;

DROP Table Excel;

View solution in original post

6 Replies
rubenmarin

Hola Alexis, ¿Podrías subir parte de la excel para comprobar como se recuperan las fechas?

alexis_garcia
Creator II
Creator II
Author

Hola Rubén, aquí está el excel:

Lo he intentado en el excel con formatos: Fecha, Número, Texto.. y no me funciona.

Gracias.

Un saludo.

rubenmarin

Con este script he conseguido que en QlikView la fecha llegue con formato de fecha:

Excel:

CrossTable(Fecha, Datos)

LOAD *

FROM [.\Pruebas.xlsx] (ooxml, embedded labels, table is Hoja1);

Datos:

NoConcatenate LOAD ID, Date(Num#(Fecha)) as Fecha, Datos Resident Excel;

DROP Table Excel;

alexis_garcia
Creator II
Creator II
Author

Muchísimas gracias Rubén, funciona perfectamente!

Lo que no entiendo es la causa de si formateo la fecha con Date() no funciona, pero con Date#() sí.

Gracias de nuevo.

Un saludo.

rubenmarin

Por alguna razón los valores que llegan del excel son strings 'fijos', aunque sean un número si intentas sumar 1 te devuelve null() porque intenta sumar un string y un número.

Date() sirve para dar formato a la fecha que se le pase, que debe ser un valor numérico (ya sea número o fecha, que en realidad es un número), aquí es lo suficientemente listo para que si le pasamos un string el solito lo transforme a número, por eso a los del Excel los he llamado 'fijos', porque parece que QV es incapaz de convertirlos a no ser que se le especifique que debe convertirlos.

Date#() o Num#() sirven para decirle a QV que el string que le pasamos lo debe convertir a número (con presentación en formato de número o fecha) y, si es necesario, como convertirlo.

alexis_garcia
Creator II
Creator II
Author

Muy bueno, no entendía por qué no lo formateaba.

Es una gozada poder aprender cada día en el foro.

Muchas gracias Rubén.

Un placer.

Saludos.