Saltar al contenido principal
Usar el prefijo Crosstable

EN ESTA PÁGINA

Usar el prefijo Crosstable

Las tablas cruzadas son un tipo habitual de tabla, que ofrece una matriz de valores entre dos listas ortogonales de datos de cabecera. Cuando tenga una tabla cruzada de datos, puede usar el prefijo Crosstable para transformar los datos y crear los campos deseados.

El prefijo Crosstable

En la tabla Product siguiente tenemos una columna por mes y una fila por producto.

Tabla Product
Producto Ene 2014 Feb 2014 Mar 2014 Abr 2014 May 2014 Jun 2014
A 100 98 100 83 103 82
B 284 279 297 305 294 292
C 50 53 50 54 49 51

Cuando cargue la tabla, el resultado será una tabla con un campo para Product y un campo para cada uno de los meses.

La tabla Product con el campo Product y un campo por cada uno de los meses
Product table with Product field, and one field each for the months.

Si desea analizar estos datos, es mucho más fácil tener todos los números en un campo y todos los meses en otro. En este caso, es una tabla de tres columnas con una columna para cada categoría. (Product, Month, Sales).

La tabla Product con los campos Product, Month y Sales
Product table with Product, Month, and Sales fields.

El prefijo Crosstable convierte los datos en una tabla con una columna para Month y otra para Sales. Otra forma de expresarlo es decir que toma los nombres de los campos y los convierte en valores de campo.

Haga lo siguiente:

  1. Cree una nueva app y denomínela Tutorial de script avanzado.
  2. Agregue una nueva sección de script en el Editor de carga de datos.
  3. Denomine a la sección: Product.
  4. En DataFiles en el menú a la derecha, haga clic en Seleccionar datos.

  5. Cargue y después seleccione Product.xlsx.
  6. Seleccione la tabla Product en la ventana Seleccionar datos desde.
  7. Nota de sugerenciaEn Nombres de campo, asegúrese de que Nombres de campo incluidos está seleccionado para que se incluyan los nombres de los campos de tabla cuando cargue los datos.
  8. Haga clic en Insertar script.
  9. Su script debería tener el aspecto siguiente:

    LOAD Product, "Jan 2014", "Feb 2014", "Mar 2014", "Apr 2014", "May 2014", "Jun 2014" FROM [lib://DataFiles/Product.xlsx] (ooxml, embedded labels, table is Product);

  10. Haga clic en Cargar datos.
  11. Abra el Visor del modelo de datos. El modelo de datos tendrá el siguiente aspecto:
  12. La tabla Product con el campo Product y un campo por cada uno de los meses
    Product table with Product field, and one field each for the months.

  13. Haga clic en la pestaña Product en el Editor de carga de datos.
  14. Inserte lo siguiente encima de la sentencia LOAD:
  15. CrossTable(Month, Sales)

  16. Haga clic en Cargar datos.
  17. Abra el Visor del modelo de datos. El modelo de datos tendrá el siguiente aspecto:
  18. La tabla Product con los campos Product, Month y Sales
    Product table with Product, Month, and Sales fields.

    Observe que, por lo general, los datos de entrada solo tienen una columna como campo calificador; como una clave interna (Product en el ejemplo anterior). No obstante, puede tener varias. De ser así, todos los campos calificadores deben enumerarse antes que los campos de atributo en la sentencia LOAD y se debe usar el tercer parámetro del prefijo Crosstable para definir el número de campos calificadores. No puede tener un LOAD precedente o un prefijo delante de la palabra clave Crosstable. Pero sí se puede usar la autoconcatenación.

    En una tabla en Qlik Sense, sus datos presentarán el siguiente aspecto:

    Tabla que muestra unos datos cargados usando el prefijo Crosstable
    Table showing data loaded using Crosstable prefix.

    Ahora puede, por ejemplo, crear un gráfico de barras utilizando los datos:

    Gráfico de barras que muestra unos datos cargados usando el prefijo Crosstable
    Bar chart showing data loaded using the Crosstable prefix.

Nota informativaSi desea más información sobre Crosstable, vea esta publicación de blog en Qlik Community: La carga mediante crosstable. Los comportamientos se discuten en el contexto de QlikView. No obstante, la lógica se aplica igualmente a Qlik Sense.

La interpretación numérica no funcionará para los campos de atributos. Esto significa que, si tiene meses como cabeceras de columna, estos no se interpretarán automáticamente. El procedimiento es utilizar el prefijo Crosstable para crear una tabla temporal y ejecutar una segunda pasada para realizar las interpretaciones como se muestra en el siguiente ejemplo:

Tenga en cuenta que esto es solo un ejemplo. No hay ejercicios de acompañamiento que completar en Qlik Sense.

tmpData: Crosstable (MonthText, Sales) LOAD Product, [Jan 2014], [Feb 2014], [Mar 2014], [Apr 2014], [May 2014], [Jun 2014] FROM ... Final: LOAD Product, Date(Date#(MonthText,'MMM YYYY'),'MMM YYYY') as Month, Sales Resident tmpData; Drop Table tmpData;

Borrado de la caché de la memoria

Puede eliminar las tablas que cree para borrar la memoria caché. Cuando cargue en una tabla temporal, como la de la sección anterior, elimínela cuando ya no la necesite más. Por ejemplo:

DROP TABLE Table1, Table2, Table3, Table4; DROP TABLES Table1, Table2, Table3, Table4;

También puede eliminar campos. Por ejemplo:

DROP FIELD Field1, Field2, Field3, Field4; DROP FIELDS Field1, Field2, Field3, Field4; DROP FIELD Field1 from Table1; DROP FIELDS Field1 from Table1;

Como puede ver, las palabras clave TABLE y FIELD pueden ir en singular o en plural.