Loading

Utilisation d'un champ agrégé pour définir le niveau de détail d'un calcul de table

Date de publication: Jul 20, 2023
Description
Si les partitions d'une vue sont créées par un champ agrégé, par exemple un calcul de table ou une instruction IF, et qu'un autre calcul de table doit retourner des résultats différents pour chaque partition, le champ agrégé n'apparaît pas dans les options Calculer au moyen de pour le calcul de table.

Par exemple, si les clients relèvent d'une des trois catégories, « High » (Élevé), « Medium » (Moyen) ou « Low » (Faible), qui sont définies par le calcul suivant :

IF SUM([Sales]) < 500
THEN "low"
ELSEIF SUM([Sales]) < 5000
THEN "Medium"
ELSE "High"
END

la vue doit contenir [Customer Name] pour que ces classes soient calculées correctement. Toutefois, si la vue contient [Customer Name], les repères de la vue sont répartis par [Customer Name], ce qui signifie que nous n'aurons pas un total de ventes par catégorie.
Résolution

Option 1 :


Entourez le calcul agrégé dans l'expression de niveau de détail (LOD) FIXED. Les expressions FIXED renvoient toujours des résultats non agrégés qui peuvent être convertis en des dimensions.L'exemple de classeur joint utilise l'ensemble de données de l'exemple Superstore pour démontrer les instructions suivantes :

  1. Créez un champ calculé appelé par exemple « FIXED Sales Category » (Catégorie de ventes FIXE) en utilisant un calcul du type suivant :

    { FIXED [Customer Name] : [Sales Categories] }

  2. Remplacez [Sales Categories] par [FIXED Sales Categories] dans la vue
  3. Supprimez [Customer Name] de la fiche Repères

Options 2 :


Créez un calcul qui utilise la logique d'origine interne et externe au calcul de table. L'exemple de classeur joint utilise l'ensemble de données de l'exemple Superstore pour démontrer les instructions suivantes :
 

  1. Créez un champ calculé appelé par exemple « Sales per Sales Category » (Ventes par catégorie de ventes) en utilisant un calcul du type suivant :

    IF SUM([Sales]) < 500
    THEN
    WINDOW_SUM(
    IF SUM([Sales]) < 500
    THEN SUM([Sales])
    END
    )
     
    ELSEIF SUM([Sales]) < 5000
    THEN
     
    WINDOW_SUM(
    IF SUM([Sales]) < 5000
    THEN SUM([Sales])
    END
    )
     
    ELSE
     
    WINDOW_SUM(
    IF SUM([Sales]) >= 5000
    THEN SUM([Sales])
    END
    )
    END

  2. Faites glisser [Sales Categories] (Catégories de ventes) vers l'étagère Lignes
  3. Faites glisser [Customer Name] (Nom du client) vers Détails sur la fiche Repères
  4. Faites glisser [Sales per Sales Category] (Ventes par catégorie de ventes) vers l’étagère Colonnes
  5. Faites un clic droit sur [Sales per Sales Category] et sélectionnez Calculer au moyen de > Customer Name
  6. Ctrl + faites glisser [Sales per Sales Category] depuis l'étagère Colonnes vers Étiquette sur la fiche Repères
  7. Accédez à Analyse > Empilement des repères > Désactivé.
Ressources supplémentaires
Le calcul dans l'option 2 peut sembler redondant, mais chaque instruction IF est nécessaire. L'instruction IF à l'intérieur de l'expression WINDOW_SUM() limite les donnés résumées dans WINDOW_SUM(). Le résultat de WINDOW_SUM() pour n'importe quelle catégorie s'affichera dans chaque catégorie. Nous devons donc placer l'expression WINDOW_SUM() à l'intérieur d'une autre instruction IF qui retournera uniquement le résultat souhaité dans la catégorie souhaitée.


Numéro d’article de la base de connaissances

001473424

Pièces jointes

using aggregation as bins.twbx

1205 KB

 
Chargement
Salesforce Help | Article