Utilisation des tableaux croisés dans le script de chargement de données
Un tableau croisé est un type de table courant comprenant une matrice de valeurs provenant de deux listes orthogonales de données d'en-tête. En général, ce format de données ne convient pas vraiment pour associer les données à d'autres tables de données.
Cette rubrique vous explique comment annuler le glissement d'un tableau croisé dynamique ou crosstab, c'est-à-dire comment transposer des parties de la table en lignes, à l'aide du préfixe crosstable utilisé avec une instruction LOAD dans le script de chargement de données.
Annulation du glissement d'un tableau croisé dynamique doté d'une seule colonne qualifiante
Un tableau croisé (ou crosstab) est souvent précédé d'un certain nombre de colonnes qualifiantes, qui doivent être lues de façon directe. Dans le cas présent, il y a une colonne qualifiante, Year, et une matrice de données de ventes par mois.
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 ce tableau est simplement chargé dans Qlik Sense, le résultat est un champ pour Year et un champ pour chacun des mois. Ce n'est pas ce que nous souhaitons généralement. Il est probablement plus intéressant de générer trois champs :
- La colonne qualifiante, dans ce cas Year, signalée en vert dans la table précédente.
- Le champ d'attribut, dans ce cas représenté par les noms des mois Jan - Jun signalés en jaune. Ce champ peut être nommé de manière pratique Month.
- Les valeurs de la matrice de données, signalées en bleu. Dans ce cas, les données représentent les données de ventes. Il conviendrait donc de nommer le champ Sales.
Pour ce faire, ajoutez le préfixe crosstable à l'instruction LOAD ou SELECT, par exemple :
crosstable (Month, Sales) LOAD * from ex1.xlsx;
La table suivante est alors créée dans Qlik Sense:
Year | Month | Sales |
---|---|---|
2008 | Jan | 45 |
2008 | Feb | 65 |
2008 | Mar | 78 |
2008 | Apr | 12 |
2008 | May | 78 |
2008 | Jun | 22 |
2009 | Jan | 11 |
2009 | Feb | 23 |
... | ... | ... |
Annulation du glissement d'un tableau croisé dynamique doté de deux colonnes qualifiantes
Dans ce cas, il y a deux colonnes qualifiantes à gauche, suivies des colonnes de la matrice.
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 |
Le nombre de colonnes qualifiantes peut être indiqué comme troisième paramètre du préfixe crosstable, de la manière suivante :
crosstable (Month, Sales, 2) LOAD * from ex2.xlsx;
Ceci entraîne le résultat suivant dans Qlik Sense :
Salesman | Year | Month | Sales |
---|---|---|---|
A | 2008 | Jan | 45 |
A | 2008 | Feb | 65 |
A | 2008 | Mar | 78 |
A | 2008 | Apr | 12 |
A | 2008 | May | 78 |
A | 2008 | Jun | 22 |
A | 2009 | Jan | 11 |
A | 2009 | Feb | 23 |
... | ... | ... | ... |