TUTORIEL · QLIK SENSE

Transformer un tableau avec Crosstable

Passer d’un fichier avec une colonne par période à une structure adaptée à l’analyse dans Qlik.

Quand les mois sont stockés en colonnes

Certains fichiers Excel présentent une ligne par produit et une colonne par mois. Cette disposition est pratique à lire dans un tableur, mais moins adaptée à l’analyse dans Qlik.

Pour analyser les ventes par mois, il est préférable d’obtenir un champ Mois et un champ Montant. Crosstable transforme les en-têtes de colonnes en valeurs.

Le contenu métier ne change pas : seule la structure des données est transformée.

Exemple

Produit | Janvier | Février | Mars
Café    | 1200    | 1350    | 1280
Thé     |  820    |  790    |  910
Avant1 colonne par mois
AprèsMois + Montant

Transformer avec Crosstable

Le préfixe Crosstable se place devant le LOAD qui lit la source.

Le premier paramètre donne le nom du futur champ contenant les anciens en-têtes. Le deuxième donne le nom du champ contenant leurs valeurs.

Le troisième paramètre indique ici qu’un champ, Produit, reste inchangé avant les colonnes à transposer.

Exemple

Ventes:
Crosstable(Mois, Montant, 1)
LOAD
    Produit,
    Janvier,
    Février,
    Mars
FROM [lib://Donnees/Ventes.xlsx]
(ooxml, embedded labels, table is Feuil1);
Moisanciens noms de colonnes
Montantvaleurs
1champ Produit conservé

Le résultat chargé dans Qlik

Après le chargement, chaque combinaison Produit/Mois devient une ligne.

Le tableau initial à trois colonnes mensuelles devient une table verticale. Mois peut alors servir de dimension et Montant de mesure.

Cette structure facilite aussi les filtres, les graphiques et les associations avec un calendrier.

Exemple

Produit | Mois    | Montant
Café    | Janvier | 1200
Café    | Février | 1350
Café    | Mars    | 1280
Thé     | Janvier | 820
DimensionMois
MesureSum(Montant)

Conserver plusieurs colonnes descriptives

Une source peut contenir plusieurs champs à conserver avant les colonnes mensuelles.

Si Produit et Région doivent rester tels quels, le troisième paramètre vaut 2.

Comptez les champs descriptifs placés avant les colonnes à transformer.

Exemple

Ventes:
Crosstable(Mois, Montant, 2)
LOAD
    Produit,
    Region,
    Janvier,
    Février,
    Mars
FROM [lib://Donnees/Ventes_Regions.xlsx]
(ooxml, embedded labels, table is Feuil1);
2Produit + Region conservés
TransposésJanvier, Février, Mars