BASE DE CONNAISSANCES

Les totaux généraux et les sous-totaux n'affichent pas les nombres attendus avec les calculs de table


Date de publication : 03 Jul 2013
Date de dernière modification : 15 Dec 2023

Problème

Lorsque vous utilisez des calculs de table, il se peut que les totaux généraux et les sous-totaux n'affichent les résultats attendus. L'option de modification du type d'agrégation pour le total général en autre chose que l'option Automatique s'affiche en grisé.

Par exemple, la vue montre la différence dans les ventes régionales moyennes entre trimestres. Le total général automatique est incorrect : il montre la différence entre les ventes moyenne pour les trimestres entiers, plutôt que la somme des différences entre les ventes régionales moyennes.

Environnement

  • Tableau Desktop
  • Calculs de table

Résolution

Option 1 : Réécrire le calcul en utilisant des fonctions LOD

Dans certains cas, il peut être possible de réécrire le calcul en utilisant des fonctions de niveau de détail (LOD) au lieu de fonctions de table. Consultez Créer des expressions LOD dans Tableau pour plus d'informations.

Une fois que le calcul est réécrit, le total général peut être modifié en utilisant le paramètre « Additionner en utiilisant ». Consultez Configurer l'agrégation totale pour des instructions.
 

Option 2 : Ajouter des détails supplémentaires à la vue et ajuster les calculs de table

Les totaux sont des lignes spéciales qui ignorent les détails de l'étagère Lignes. De ce fait, pour forcer le traitement d'un calcul de table au niveau de détail correct dans le total général, vous devez ajouter des dimensions supplémentaires à la vue. Par la suite, toutes les mesures de la vue doivent être modifiées pour tenir compte des dimensions supplémentaires.

Les instructions suivantes commencent depuis la feuille de calcul « Example 1: original view » dans le classeur, section Pièces jointes à droite de cet article. Les instructions de création de la vue d'origine sont intégrées dans le classeur.
  1. Pour chaque dimension dans l'étagère Lignes, faites un clic droit sur la dimension dans le volet Données et sélectionnez Dupliquer. Dans cet exemple, la seule [Region] est sur l'étagère Lignes.
  2. Faites glisser [Region (copy)] vers Détails sur la fiche Repères
  3. Créez un champ calculé.
    1. Sélectionnez Analyse > Créer un champ calculé
    2. Dans la boîte de dialogue Créer un champ calculé, procédez comme suit, puis cliquez sur OK :
    3. Nommez le champ. Dans l'exemple, ce champ est appelé « New Difference Between Average Sales » (Nouvelle différence entre les ventes moyennes)
    4. Entrez la formule suivante :
      IF FIRST() = 0  
      THEN WINDOW_SUM([Difference Between Average Sales])  
      END
  4. Remplacez [Difference Between Average Sales] par [New Difference Between Average Sales] dans Texte sur la fiche Repères
  5. Faites un clic droit sur [New Difference Between Average Sales] dans la vue et sélectionnez Modifier le calcul de table...
  6. Dans la boîte de dialogue Calcul de table, effectuez la procédure suivante et fermez la boîte de dialogue :
    1. Dans la liste déroulante sous Calculs imbriqués, sélectionnez Difference Between Average Sales (Différence entre les ventes moyennes)
    2. Sélectionnez Table (horizontale) Remarque : il s'agit du calcul utilisant le paramètre pour Difference Between Average Sales dans la vue d'origine
    3. Dans la liste déroulante sous Calculs imbriqués, sélectionnez New Difference Between Average Sales (Nouvelle différence entre les ventes moyennes)
    4. Sélectionnez Dimensions spécifiques
    5. Cochez uniquement les champs en double. Dans cet exemple, il s'agit de Region (copy)
  7. Accédez à Analyse > Empilement des repères > Désactivé

Cause

Les totaux définis sur Additionner en utilisant > Automatique calculent la mesure pour l'ensemble de données tout entier (comme si la table dans la vue n'existait pas). Les totaux généraux automatiques seront généralement corrects si le calcul de table utilise uniquement des agrégations additives, par exemple SUM(), etc. Par exemple, la somme de chaque vente individuelle sera identique au total des sommes de ventes par client.

Si le calcul de table réfère à un champ qui utilise une agrégation non additive (par exemple division, multiplication, MIN(), AVG(), etc.), le total n'est pas égal à la somme des nombres dans la vue. Par exemple, la moyenne de chaque vente individuelle (à savoir la moyenne générale) est différente de la somme de la moyenne de ventes pour chaque client.

Seuls les totaux automatiques sont actuellement disponibles pour les calculs de table. Pour apporter votre soutien à l'inclusion de cette amélioration dans une version future du produit, ajoutez votre vote à l'idée de communauté suivante : Totaux et sous-totaux sur les repères affichés au lieu d'un calcul séparé (à savoir, faire un travail de sous-totaux tel qu'Excel)

Informations supplémentaires

Si le problème se produit au niveau d'un champ qui n'utilise pas une fonction de table, il peut être possible de modifier le total en utilisant le paramètre à la place. Consultez Configurer l'agrégation totale pour des instructions.


Remarques sur l'option 2

  • Le classeur joint contient des exemples supplémentaires couvrant d'autres cas d'utilisation
  • La fonction WINDOW_SUM() reproduit le Total en utilisant > Somme. Pour les autres agrégations de totaux généraux, utilisez la fonction de table correspondante (WINDOW_AVG() pour les totaux moyens, WINDOW_MIN() pour les totaux minimum, TOTAL() pour les totaux automatiques, etc...)
  • Cet exemple utilise les Totaux généraux de colonnes qui apparaissent sous forme de ligne dans la vue. Pour les vues utilisant des totaux généraux de lignes, suivez les mêmes instructions en remplaçant « ligne » par « colonne »
  • Si la vue d'origine contient plusieurs mesures, toutes les mesures doivent être converties en un calcul tel que celui de l'étape 3, même si les mesures ne sont pas des calculs de table.Voir l'Exemple 2 dans le classeur joint pour plus de détails.
  • Dans cet exemple, le calcul de table d'origine était partitionné par toutes les dimensions dans l'étagère Lignes (à savoir [Region] était désélectionné dans la boîte de dialogue Calcul de table).Si le calcul de table d'origine correspond à une dimension dupliquée, dans l'étape 6.2, vous devrez vérifier également le champ dupliqué. Voir l'Exemple 4 dans le classeur joint pour plus de détails.
  • L'étape 6 consiste à configurer un calcul séparé en utilisant les paramètres pour la fonction de table dans [Difference Between Average Sales], qui est LOOKUP(), et les fonctions de table dans [New Difference Between Average Sales], qui sont FIRST() et WINDOW_SUM(). Pour plus d'informations sur la configuration des calculs en utilisant les paramètres pour les calculs de table imbriqués, consultez Personnaliser les calculs de table
Cet article vous a-t-il permis de résoudre le problème ?