QlikWorld 2020 Global Conference. Únase a nosotros para descubrir cómo aprovechar al máximo sus datos. Actúe rápido. Regístrese ahora y ahorre dinero.

Trabajar con tablas cruzadas en el editor de carga de datos

Una tabla cruzada es un tipo habitual de tabla, que ofrece una matriz de valores entre dos listas ortogonales de datos de cabecera. Por lo general no es el formato de datos más óptimo si queremos asociar los datos con otras tablas de datos.

Esta sección describe cómo podemos despivotar una tabla cruzada, es decir, transponer (o trasladar) partes de la misma a filas utilizando el prefijo crosstable en una sentencia LOAD en el script de carga de datos.

Despivotar una tabla cruzada con una columna cualificadora

Una tabla cruzada a menudo va precedida de una serie de columnas cualificadoras, que deben leerse de manera directa/continua. En este caso hay una columna de cualificación, Year, y una matriz de datos de ventas por mes.

Tabla cruzada con una columna cualificadora
Year Jan Feb Mar Apr May Jun
2008 45 65 78 12 78 22
2009 11 23 22 22 45 85
2010 65 56 22 79 12 56
2011 45 24 32 78 55 15
2012 45 56 35 78 68 82

Si esta tabla simplemente se carga en Qlik Sense el resultado será una tabla con un campo por Year y otro campo por cada uno de los meses. Por regla general, éste no es el resultado que interesa. Probablemente preferiríamos tener tres campos generados:

  • La columna cualificadora, en este caso Year, marcada en verde en la tabla superior.
  • El campo de atributo, en este caso representado por los nombres de mes Jan - Jun marcados con amarillo. Este campo se puede denominar de forma adecuada Month.
  • Los valores de la matriz de datos, marcados con azul. En este caso representan datos de ventas, por lo que pueden denominarse Sales de forma adecuada.

Esto se logra añadiendo el prefijo crosstable a la sentencia LOAD o SELECT, por ejemplo:

crosstable (Month, Sales) LOAD * from ex1.xlsx;

Esto crea la tabla siguiente en Qlik Sense:

Tabla con el prefijo crosstable agregado a la sentencia LOAD o SELECT
Year Month Sales
2008 Ene 45
2008 Feb 65
2008 Mar 78
2008 Abr 12
2008 May 78
2008 Jun 22
2009 Ene 11
2009 Feb 23
... ... ...

Despivotar una tabla cruzada con dos columnas cualificadoras

En este caso hay dos columnas cualificadoras a la izquierda, seguidas por las columnas matriz.

Tabla cruzada con dos columnas cualificadoras
Salesman Year Jan Feb Mar Apr May Jun
A 2008 45 65 78 12 78 22
A 2009 11 23 22 22 45 85
A 2010 65 56 22 79 12 56
A 2011 45 24 32 78 55 15
A 2012 45 56 35 78 68 82
B 2008 57 77 90 24 90 34
B 2009 23 35 34 34 57 97
B 2010 77 68 34 91 24 68
B 2011 57 36 44 90 67 27
B 2012 57 68 47 90 80 94

El número de columnas cualificadoras se puede indicar como un tercer parámetro en el prefijo crosstable de la siguiente manera:

crosstable (Month, Sales, 2) LOAD * from ex2.xlsx;

El resultado en Qlik Sense es el siguiente:

Tabla con columnas cualificadoras enunciadas como un tercer parámetro para el prefijo crosstable
Comercial de venta Year Month Sales
A 2008 Ene 45
A 2008 Feb 65
A 2008 Mar 78
A 2008 Abr 12
A 2008 May 78
A 2008 Jun 22
A 2009 Ene 11
A 2009 Feb 23
... ... ... ...

See also: