BASE DE CONNAISSANCES

Afficher les membres de la dimension sous forme de liste plutôt que comme lignes ou repères individuels


Date de publication : 03 Sep 2015
Date de dernière modification : 20 Jul 2023

Question

Comment afficher tous les membres d'une dimension sous forme de liste plutôt que comme lignes ou repères individuels, par exemple en concaténant des sous-catégories en une liste de valeurs séparées par des virgules pour chaque catégorie. 

Environnement

Tableau Desktop

Réponse

Option 1 : utiliser des calculs de table dans Tableau Deskop

Étape 1 : créer les calculs
  1. Créez un champ calculé appelé par exemple « Create the list » (Créer la liste) comportant un calcul du type suivant :
    IF FIRST()= 0
    THEN MIN([Sub-Category])
    ELSE PREVIOUS_VALUE("") + ", " + MIN([Sub-Category])
    END
  2. Créez un champ calculé appelé par exemple « Sub-Category List Label » (Étiquette de liste de sous-catégorie) en utilisant un calcul du type suivant :
    WINDOW_MAX([Create the list] )

    Modifiez les champs calculés du classeur joint pour des notes supplémentaires sur le fonctionnement de ces calculs.
Étape 2 : créer la vue de graphique à barres
  1. Faites glisser [Category] et [Sous-Category] vers l'étagère Lignes
  2. Faites glisser [Sales] vers l'étagère Colonnes
  3. Faites glisser [Sub-Category] sur Couleur dans la fiche Repères
    Remarque : [Sub-Category] doit être inclus dans la vue pour que les calculs fonctionnent correctement. Si la vue finale ne doit pas inclure la dimension indiquée dans l'infobulle, consultez l'onglet/la feuille de calcul « Adv Option 1 » pour des instructions supplémentaires dans l'exemple de classeur joint – list dimenion values_v2018.1.twbx
  4. Faites glisser [Sub-Category List] sur Infobulle dans la fiche Repères
  5. Faites un clic droit sur [Sub-Category List] dans l'infobulle et sélectionnez Calculer au moyen de > Sous-catégorie
Remarque : si des dimensions supplémentaires sont ajoutées à la vue, il peut être nécessaire de mettre à jour le paramètre Calculer au moyen de. Pour une explication détaillée sur la manière de contrôler la sortie d'une fonction de table avec les paramètres de Calculer au moyen de, consultez Transformer des valeurs avec des calculs de table.

Option 2 : utiliser Tableau Prep

  1. Ajoutez une étape
  2. Faites un clic droit sur [Sub-Category] dans l'étape de nettoyage 1 et sélectionnez Dupliquer le champ
  3. Ajoutez une Agrégation
  4. Dans Agrégation 1, procédez comme suit :
    1. Ajoutez une catégorie aux Champs regroupés
    2. Trouvez Sub-Category dans la liste des champs supplémentaires, cliquez sur GROUPE et sélectionnez Minimum (Ceci ajoutera MIN(Sub-Category) aux Champs agrégés)
    3. Faites un clic droit sur MIN(Sub-Category) dans Champs agrégés et sélectionnez Renommer. Renommez-le par exemple « Sub-Category (first) »
    4. Ajoutez MAX(Sub-Category-1) aux Champs agrégés
    5. Renommez MAX(Sub-Category-1) en « Sub-Category (last) »
  5. Faites glisser l'Agrégation 1 sur l'étape de nettoyage 1 et déposez l'Agrégation 1 sur Jointure
  6. Ajoutez une étape à partir de la jointure 1
  7. Dans l'étape de nettoyage 2, créez un champ calculé appelé « Filtered Sub-Category » avec une formule de ce type
    IF [Sub-Category] != [Sub-Category (first)]
    AND [Sub-Category] != [Sub-Category (last)]
    THEN [Sub-Category]
    END
  8. Dans l'étape de nettoyage 2, dupliquez [Filtered Sub-Category]
  9. Dans l'étape de nettoyage 2, supprimez [Category-1] et [Sub-Category]
  10. Répétez les étapes 3 à 9 pour créer autant de champs que nécessaire. Dans cet exemple, la catégorie ayant le plus de sous-catégories comporte 9 sous-catégories. Le flux Prep a donc besoin de 5 étapes agrégées pour créer 10 champs afin de ne manquer aucune sous-catégorie.
  11. Dans la dernière étape de nettoyage, créez un champ calcul appelé par exemple « Sous-catégories regroupées » avec une formule de ce type :
    IF ISNULL([Sub-Category (first)])
    THEN ''
    ELSE [Sub-Category (first)] + ' '
    END
    
    + IF ISNULL([Sub-Category (second)])
    THEN ''
    ELSE [Sub-Category (second)] + ' '
    END
    
    + IF ISNULL([sub-category (third)])
    THEN ''
    ELSE [sub-category (third)] + ' '
    END
    
    + IF ISNULL([sub-category (third to last)])
    THEN ''
    ELSE [sub-category (third)] + ' '
    END
    
    + IF ISNULL([Sub-Category (second to last)])
    THEN ''
    ELSE [Sub-Category (second to last)] + ' '
    END
    
    + IF ISNULL([Sub-Category (last)])
    THEN ''
    ELSE [Sub-Category (last)] + ' '
    END

    Le calcul ci-dessus combine tous les champs de sous-catégories créés. Si le champ de sous-catégorie comporte une valeur NULL, cette valeur NULL doit être remplacée par une chaîne vide (à savoir deux guillemets '') parce que la combinaison d'une valeur et d'une valeur NULL génèrera toujours une valeur NULL.
  12. Envoyez les données
Cet article vous a-t-il permis de résoudre le problème ?