Accéder au contenu principal Passer au contenu complémentaire

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 un tableau croisé de données, 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
ProduitJan 2014Fév 2014Mar 2014Apr 2014Mai 2014Juin 2014
A100981008310382
B284279297305294292
C505350544951

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

Table Product avec le champ Product et un champ pour chacun des mois.

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

Table Product avec les champs Product, Month et Sales.

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.

  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

    Table Product avec le champ Product et un champ pour chacun des mois.
  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

    Table Product avec les champs Product, Month et Sales.

    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 affichant des données chargées à l'aide du préfixe Crosstable.

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

    graphique à barres affichant des données chargées à l'aide du préfixe Crosstable

    graphique à barres affichant des données chargées à l'aide du préfixe Crosstable.
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.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !