BASE DE CONNAISSANCES

Création d'un champ calculé utilisant des dimensions avec une source de données de type cube


Date de publication : 17 May 2013
Date de dernière modification : 07 Jun 2023

Question

Comment créer un champ calculé en utilisant des dimensions d'une source de données multidimensionnelle (cube).

Environnement

  • Tableau Desktop
  • Source de données multidimensionnelle (cube)

Réponse

Option 1 : Utiliser des fonctions de table

Si les champs calculés Tableau dans les sources de données de type cube ne peuvent pas référencer directement les dimensions, les fonctions de table, quant à elles, peuvent référencer les membres d'une dimension dans la vue. Par exemple, INDEX() peut être utilisé pour référencer la colonne/la ligne d'une valeur de dimension dans la vue.Ou WINDOW_SUM(SUM(1)) peut être utilisé pour comptabiliser les membres de la dimension dans la vue.

Remarque : cette méthode nécessite que toutes les dimensions indirectement référencées dans les calculs soient incluses dans la vue, mais il est possible de continuer à modifier la vue de manière à masquer ces dimensions. Consultez Exécution d'un calcul de table par une dimension non présente dans la vue

Les instructions suivantes montrent comment créer une vue de tableau croisé avec des colonnes pour les ventes 2019, les ventes 2018, et une colonne pour la différence de pourcentage entre ces deux années. Pour voir ces instructions en action (et voir les remarques supplémentaires sur les raisons de l'efficacité de cette méthode), téléchargez le classeur depuis le volet droit de cet article.
  1. Faites glisser [Date de commande] vers l'étagère Colonnes
  2. Faites un clic droit sur YEAR(Order Date) dans l'étagère Colonnes et sélectionnez Trier…
  3. Dans la boîte de dialogue Trier, effectuez la procédure suivante et fermez la boîte de dialogue :
    1. Pour l'option Trier par, sélectionnez Manuel
    2. Déplacez 2016 en bas
  4. Faites un clic droit sur l'en-tête 2017 dans la vue et sélectionnez Exclure
  5. Sélectionnez Analyse > Créer un champ calculé
  6. Dans la boîte de dialogue Champ calculé qui s'ouvre, procédez comme suit, puis cliquez sur OK :
    1. Nommez le champ calculé. Dans cet exemple, le champ calculé est appelé « Index »
    2. Dans le champ de formule, créez un calcul du type suivant :

      INDEX()
  7. Faites glisser [Index] sur Texte dans la fiche Repères.
  8. Créez un champ calculé portant un nom tel que « 2018 Sales (cube) » (Ventes 2018 (cube)) avec un calcul de ce type :

    IF INDEX() = 1
    THEN SUM([Sales])
    END

     
  9. Créez un champ calculé portant un nom tel que « 2019 Sales (cube) » (Ventes 2019 (cube)) avec un calcul de ce type :

    IF INDEX() = 2
    THEN SUM([Sales])
    END

     
  10. Créez un champ calculé appelé par exemple « % Difference (cube) » (% de diférence (cube)) et comportant un calcul de ce type :

    IF INDEX() = 3
    THEN
    (WINDOW_SUM([2018 Sales (cube)])-WINDOW_SUM([2019 Sales (cube)]))
    /
    WINDOW_SUM([2018 Sales (cube)])
    END

     
  11. Créez un champ calculé appelé par exemple « Headers » (En-têtes) avec un calcul du type suivant :

    IF INDEX() = 2
    THEN '2019 Sales'

    ELSEIF INDEX() = 1
    THEN '2018 Sales'

    ELSEIF INDEX() = 3
    THEN '% Diff'

    END

     
  12. Faites glisser [En-têtes] sur l'étagère Colonnes
  13. Faites un clic droit sur YEAR(Order Date) dans l'étagère Colonnes et désélectionnez Afficher l'en-tête.
  14. Faites un clic droit sur Order Date / En-têtes dans la vue, puis sélectionnez Masquer les étiquettes de champ pour les colonnes
  15. Faites glisser [2018 Sales (cube)], [2019 Sales (cube)] et [% Difference (cube)] sur Texte dans la fiche Repères
  16. Cliquez sur Texte dans la fiche Repères et cliquez sur le bouton
  17. Dans la boîte de dialogue Modifier l'étiquette, supprimez les sauts de ligne entre AGG(2018 Sales (cube)), AGG(2019 Sales (cube)) et AGG(% Difference (cube))
 

Option 2 : Utiliser des membres calculés

Une solution consiste à créer un membre calculé à la place. Pour plus d'informations, consultez Comment créer un membre calculé.

Informations supplémentaires

Les sources de données de type cube pré-agrègent les valeurs de mesures pour les dimensions spécifiées avant que les données soient importées dansTableau Desktop. L'utilisation de dimensions dans un calcul peut donc potentiellement générer des résultats inexacts.

Pour apporter votre soutien à l'inclusion de cette amélioration dans une version future du produit, ajoutez votre vote aux idées suivantes de la communauté :

Discuter de cet article... Forum de commentaires
Cet article vous a-t-il permis de résoudre le problème ?