Trabajar con tablas cruzadas
Una tabla cruzada es un tipo muy habitual de tabla, que ofrece una matriz de valores entre dos listas ortogonales de datos de cabecera. El aspecto podría ser el de la tabla a continuación.
Ejemplo 1:
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 se carga simplemente en QlikView, el resultado será un campo para Year y otro campo para cada uno de los meses. Por regla general, éste no es el resultado que interesa. Probablemente sea preferible generar tres campos, uno para cada categoría de cabecera (Year y Month) y otro para los valores dentro de la matriz.
Esto se consigue añadiendo un prefijo crosstable a la sentencia LOAD o SELECT.
crosstable (Month, Sales) LOAD * from ex1.xlsx;
El resultado en QlikView es el siguiente:
La tabla cruzada va a menudo precedida por una serie de columnas cualificadoras, que deben leerse de manera directa/continua. En este caso hay una columna cualificadora, Year:
Ejemplo 2:
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 |
En este caso hay dos columnas cualificadoras a la izquierda, seguidas por las columnas matriz. El número de columnas cualificadoras puede declararse un como tercer parámetro del prefijo crosstable, como se observa a continuación:
crosstable (Month, Sales, 2) LOAD * from ex2.xlsx;
El resultado en QlikView es el siguiente: