Accéder au contenu principal
Utilisation du préfixe Crosstable

SUR CETTE PAGE

Utilisation du préfixe Crosstable

Les tableaux croisés sont un type de table courant comprenant une matrice de valeurs entre deux listes orthogonales de données d'en-tête. Lorsque vous avez des données de tableau croisé, vous pouvez utiliser le préfixe Crosstable pour transformer les données et créer les champs souhaités.

Préfixe Crosstable

Dans la table Product suivante, vous avez une colonne par mois et une ligne par produit.

Table de produit
Produit Jan 2014 Fév 2014 Mar 2014 Apr 2014 Mai 2014 Juin 2014
A 100 98 100 83 103 82
B 284 279 297 305 294 292
C 50 53 50 54 49 51

Lorsque vous chargez la table, le résultat est une table avec un champ pour Product et un champ pour chacun des mois.

Table Product avec le champ Product et un champ pour chacun des mois
Product table with Product field, and one field each for the months.

Si vous souhaitez analyser ces données, il est bien plus simple de grouper tous les nombres dans un champ et tous les mois dans l'autre. Dans ce cas, il s'agit d'une table à trois colonnes avec une colonne pour chaque catégorie (Product, Month, Sales).

Table Product avec les champs Product, Month et Sales
Product table with Product, Month, and Sales fields.

Le préfixe Crosstable convertit les données en table comportant une colonne pour le mois (Month) et une autre pour les ventes (Sales). Autrement dit, il utilise les noms de champ pour les convertir en valeurs de champ.

Procédez comme suit :

  1. Créez une nouvelle application et appelez-la Advanced Scripting Tutorial.
  2. Ajoutez une nouvelle section de script dans l'éditeur de chargement de données.
  3. Nommez la section Product.
  4. Sous DataFiles dans le menu droit, cliquez sur Sélectionner des données.

  5. Téléchargez, puis sélectionnez Product.xlsx.
  6. Sélectionnez la table Product dans la fenêtre Sélectionner des données depuis.
  7. Note ConseilSous Noms des champs, assurez-vous que l'option Noms de champ incorporés est activée afin d'inclure les noms des champs de table lors du chargement des données.
  8. Cliquez sur Insérer le script.
  9. Le script devrait avoir l'aspect suivant :

    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. Cliquez sur Charger les données.
  11. Ouvrez le Visionneur de modèle de données. Le modèle de données a l'aspect suivant :
  12. Table Product avec le champ Product et un champ pour chacun des mois
    Product table with Product field, and one field each for the months.

  13. Cliquez sur l'onglet Product dans l'éditeur de chargement de données.
  14. Insérez ce qui suit au-dessus de l'instruction LOAD :
  15. CrossTable(Month, Sales)

  16. Cliquez sur Charger les données.
  17. Ouvrez le Visionneur de modèle de données. Le modèle de données a l'aspect suivant :
  18. Table Product avec les champs Product, Month et Sales
    Product table with Product, Month, and Sales fields.

    Notez que les données d'entrée comprennent généralement une seule colonne comme champ de qualificateur, comme clé interne (Product dans l'exemple ci-dessus). Il est toutefois possible d'en utiliser plusieurs. Dans ce cas, tous les champs qualifiants doivent être répertoriés avant les champs d'attribut dans l'instruction LOAD et le troisième paramètre du préfixe Crosstable doit être utilisé pour définir le nombre de champs qualifiants. Vous ne pouvez pas avoir une instruction LOAD antérieure ou un préfixe devant le mot-clé Crosstable. Cependant, vous pouvez utiliser la concaténation automatique.

    Dans une table dans Qlik Sense, vos données ressemblent à ce qui suit :

    Table affichant des données chargées à l'aide du préfixe Crosstable
    Table showing data loaded using Crosstable prefix.

    Vous pouvez maintenant, par exemple, créer un graphique en barres en utilisant les données :

    Graphique en barres affichant des données chargées à l'aide du préfixe Crosstable
    Bar chart showing data loaded using the Crosstable prefix.

Note InformationsPour en savoir plus sur Crosstable, voir ces articles de blog dans Qlik Community : The Crosstable Load. Les comportements sont abordés dans le contexte de QlikView. Cependant, la logique s'applique également à Qlik Sense.

L'interprétation numérique n'est pas compatible avec les champs d'attribut. En d'autres termes, si les mois sont représentés dans des en-têtes de colonne, ils ne sont pas interprétés automatiquement. La solution consiste à utiliser le préfixe Crosstable en vue de créer une table temporaire et d'exécuter un deuxième passage pour obtenir les interprétations illustrées dans l'exemple suivant :

Notez qu'il s'agit uniquement d'un exemple. Il n'y a aucun exercice correspondant à terminer dans 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;

Effacement du cache mémoire

Vous pouvez supprimer les tables que vous créez pour effacer la mémoire cache. Lorsque vous chargez dans une table temporaire, comme à la section précédente, nous vous recommandons de la supprimer lorsque vous n'en avez plus besoin. Par exemple :

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

Vous pouvez aussi abandonner des champs. Par exemple :

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

Comme vous le constatez, les mots-clés TABLE et FIELD peuvent être au singulier ou au pluriel.