Date de dernière modification : 20 Jul 2023
Environnement
Tableau DesktopRéponse
En général, la formule permettant de comptabiliser les membres d'une dimension remplissant une condition est :{ FIXED [Dimension] : SUM(
IF <Condition>
THEN 1
ELSE 0
END
) }
IF <Condition>
THEN 1
ELSE 0
END
) }
Plusieurs cas d'utilisation peuvent faire appel à cette formule générale. Vous trouverez ci-dessous quelques exemples d'utilisation de l'ensemble de données Superstore.
CLIQUER POUR DÉVELOPPER LA SOLUTION
Exemple 1 : Utilisation d'une plage de valeurs avec des paramètres
Dans cet exemple, la vue contient [Catégorie] et [Segment] sur Lignes, et l'objectif est de comptabiliser le nombre de clients avec des ventes comprises entre deux valeurs de paramètres pour chaque combinaison de catégorie et de segment.
- Sélectionnez Analyse > Créer un champ calculé
- Dans la boîte de dialogue Champ calculé qui s'ouvre, procédez comme suit, puis cliquez sur OK :
- Nommez le champ calculé. Dans cet exemple, le champ calculé est appelé « Nbre de clients avec ventes sélectionnées »
- Dans le champ de formule, créez un calcul du type suivant :
IF { INCLUDE [Nom du client] : SUM([Ventes])} <= [Limite inférieure des ventes]
AND { INCLUDE [Nom du client] : SUM([Ventes])} <= [Limite supérieure des ventes]
THEN 1
ELSE 0
END
- Faites glisser [Nbre de clients avec ventes sélectionnées] vers Texte sur la fiche Repères
CLIQUER POUR DÉVELOPPER LA SOLUTION
Exemple 2 : Utilisation d'une valeur Texte
Dans cet exemple, la vue contient [ID de commande] et [Nom de produit] dans les lignes, et l'objecttif est de comptabiliser les commandes contenant le produit « Agrafeuse ».
- Créez un champ calculé appelé par exemple « Nbre de commandes comportant une agrafeuse » comportant un calcul du type suivant :
{ FIXED [ID de commande] : MAX(
IF [Nom du produit] = "Agrafeuse"
THEN 1
ELSE 0
END)} - Faites glisser [Nbre de commandes comportant une agrafeuse] vers Texte sur la fiche Repères
CLIQUER POUR DÉVELOPPER LA SOLUTION
Exemple 3 : Création de catégories
Dans cet exemple, [État] a été ajouté à Texte, et l'objectif consiste à catégoriser les États selon le nombre de villes ayant un profit négatif.
- Créez un champ calculé appelé par exemple « Nbre de villes avec profit » comportant une formule du type suivant :
{ FIXED [État] : SUM(
IF { INCLUDE [Ville] : SUM([Profit]) } < 0
THEN 1
ELSE 0
END
) } - Créez un champ calculé appelé par exemple « Catégories basées sur le profit par ville » comportant un calcul du type suivant :
IF [Nbre de villes sans profit] = 0
THEN "Toutes les villes ont un profit positif"
ELSEIF [Nbre de villes sans profit] = 1
THEN "Une ville a un profit négatif"
ELSE "Plusieurs villes ont un profit négatif"
END - Faites glisser [Catégories basées sur le profit par ville] vers l'étagère Colonnes
CLIQUER POUR DÉVELOPPER LA SOLUTION
Exemple 4 : Utilisation de fonctions de table
Dans cet exemple, la vue est déjà filtrée pour afficher les 10 principaux clients par ventes par catégorie par segment. L'objectif est de mettre en évidence les catégories/segments comportant plus de deux clients avec profit négatif.
- Créez un champ calculé appelé par exemple « 3+ clients Top 10 avec Profit nég » comportant un calcul du type suivant :
IF
WINDOW_SUM(
IF SUM([Profit]) < 0
AND [Classement ventes] <= 10
THEN 1
ELSE 0
END ) > 2
THEN "Trois clients ou plus avec profit négatif"
ELSE "Bon classement"
END - Faites glisser [3+ clients Top 10 avec Profit nég] vers Couleur dans la fiche Repères
- Faites un clic droit sur [3+ clients Top 10 avec Profit nég] sur Couleur et sélectionnez Calculer au moyen de > Nom du client
Informations supplémentaires
Remarques sur l'exemple 1 :
- L'expression INCLUDE est nécessaire parce que [Nom du client] ne figure pas dans la vue
- SUM([Ventes]) est agrégé jusqu'au niveau de détail dans la vue, qui est [Catégorie] et [Segment] dans cet exemple, plus [Nom du client] parce que l'expression INCLUDE répertorie [Nom du client]
- Le calcul [Nbre de clients avec ventes sélectionnées] évalue si les ventes par client sont inférieures à la [Limite supérieure de ventes] et supérieures à la [Limite supérieure de ventes]. per customer is below [Sales Upper Limit] and above [Sales Upper Limit]. Si les ventes par client se trouvent dans la plage spécifiée, ce calcul renvoie 1, qui, une fois additionné, sert de comptabilisation des clients
- Ce calcul peut également être écrit avec une fonction COUNTD()
Remarques sur l'exemple 2 :
- L'instruction IF lit chaque enregistrement de l'ensemble de données sous-jacentes pour vérifier si [Nom du produit] est « Agrafeuse ». Dans ce cas, le calcul renvoie 1 pour cet enregistrement. Ensuite, l'expression FIXED renvoie le maximum de 1 et de 0 pour chaque enregistrement avec la même valeur de [ID de commande].
- Dans Superstore, il n'y a qu'un seul enregistrement pour chaque combinaison unique de [Nom de produit] et [ID de commande], ce qui signifie que MAX() pourrait être remplacé par SUM() et renvoyer le même résultat car la totalisation de la valeur 1 revient au même que prendre le maximum de la valeur 1.
Remarques sur l'exemple 3 :
- L'expression INCLUDE renvoie la somme de profit par ville et État parce que [État] est dans l'expression FIXED. Le calcul renvoie ensuite un 1 pour chaque ville sans profit, ce qui est une manière de comptabiliser les villes.
Remarques sur l'exemple 4 :
- Cet exemple doit utiliser des calculs de table plutôt que des expressions de niveau de détail (LOD) parce que les filtres de calcul de table ne filtrent pas les données sous-jacentes. Nous devons donc ajouter une condition à l'intérieur du calcul pour le classement.Toutefois, RANK() est une fonction de table et ne peut pas être utilisée dans un calcul LOD.
- Les calculs de table sont affectés par chaque dimension non agrégée dans la vue. Si le calcul de table ne renvoie pas les résultats corrects, ce peut être dû au mode de calcul du calcul de table selon les dimensions de la vue. Pour résoudre ce problème, modifiez l'option Calculer au moyen de. Pour plus d'informations, consultez Transformer des valeurs avec des calculs de table.
Merci de nous avoir donné votre avis sur l’efficacité de l’article.
Ouvrir un nouveau cas
Continuer la recherche
Base de connaissances
Communauté
Aide produit
Formation et tutoriels