Analyse d'ensembles
Lorsque vous effectuez une sélection dans une application, vous définissez un sous-ensemble d'enregistrements dans les données. Les fonctions d'agrégation telles que Sum(), Max(), Min(), Avg() et Count() sont calculées en fonction de ce sous-ensemble.
En d'autres termes, votre sélection définit l'étendue de l'agrégation ; elle définit l'ensemble d'enregistrements sur lesquels les calculs sont effectués.
L'analyse d'ensembles est une manière de définir une étendue différente de l'ensemble d'enregistrements défini par la sélection active. Cette nouvelle étendue peut également être considérée comme une sélection alternative.
Cela peut s'avérer utile si vous souhaitez comparer la sélection active à une valeur donnée, par exemple, à la valeur de l'an dernier ou à la part de marché mondiale.
Expressions d'ensemble
Les expressions d'ensemble peuvent être utilisées à l'intérieur et à l'extérieur des fonctions d'agrégation et sont encadrées par des accolades.
Expression d'ensemble interne
Sum( {$<Year={2021}>} Sales )
Expression d'ensemble externe
{<Year={2021}>} Sum(Sales) / Count(distinct Customer)
Pour plus d'informations sur les expressions d'ensemble internes et externes, voir Expressions d'ensemble internes et externes.
Une expression d'ensemble se compose d'une combinaison des éléments suivants :
-
Identificateurs. Un identificateur d'ensemble représente une sélection, définie ailleurs. Il représente également un ensemble spécifique d'enregistrements dans les données. Il peut s'agir de la sélection active, d'une sélection d'un favori ou d'une sélection d'un état alternatif. Une expression d'ensemble simple se compose d'un seul identificateur, par exemple le signe dollar, {$}, qui signifie tous les enregistrements de la sélection active.
Exemples : $, 1, BookMark1, State2
Voir : Identificateurs d'ensemble
-
Opérateurs. Un opérateur d'ensemble peut être utilisé pour créer des unions, des différences ou des intersections entre différents identificateurs d'ensemble. Vous pouvez ainsi créer un sous-ensemble ou un super-ensemble des sélections définies par les identificateurs d'ensemble.
Exemples : +, -, *, /
Voir : Opérateurs d'ensemble
-
Modificateurs. Un modificateur d'ensemble peut être ajouté à l'identificateur d'ensemble pour modifier sa sélection. Un modificateur peut également être utilisé indépendamment ; il modifiera alors l'identificateur par défaut. Un modificateur doit être encadré par des crochets angulaires <…>.
Exemples : <Year={2020}>, <Supplier={ACME}>
Voir : Modificateurs d'ensemble
Les éléments sont combinés pour former des expressions d'ensemble.
L'expression d'ensemble ci-dessus, par exemple, est créée à partir de l'agrégation Sum(Sales).
Le premier opérande renvoie sales pour l'année 2021 pour la sélection active, tel qu'indiqué par l'identificateur d'ensemble $ et le modificateur d'ensemble contenant la sélection de l'année 2021. Le deuxième opérande renvoie Sales pour Sweden et ignore la sélection active, tel qu'indiqué par l'identificateur d'ensemble1.
Pour finir, l'expression renvoie un ensemble composé des enregistrements qui appartiennent à l'un des deux opérandes d'ensemble, tel qu'indiqué par l'opérateur d'ensemble +.
Pour une description de la syntaxe complète, voir Syntaxe des expressions d'ensemble.
Exemples
Des exemples combinant des éléments d'expression d'ensemble ci-dessus sont disponibles dans les rubriques suivantes :
-
Modificateurs d'ensemble associés à des opérateurs d'ensemble
-
Modificateurs d'ensemble associés à des opérateurs d'ensemble implicites
Pour essayer d'autres expressions, voir Didacticiel - Création d'une expression d'ensemble.
Ensembles naturels
En règle générale, une expression d'ensemble représente un ensemble d'enregistrements du modèle de données et une sélection qui définit ce sous-ensemble de données. Dans ce cas, l'ensemble est appelé ensemble naturel.
Les identificateurs d'ensemble, avec ou sans modificateurs d'ensemble, représentent toujours des ensembles naturels.
Cependant, une expression d'ensemble qui utilise des opérateurs d'ensemble représente également un sous-ensemble des enregistrements, mais ne peut généralement tout de même pas être décrite via une sélection de valeurs de champ. Une telle expression est un ensemble non naturel.
Par exemple, l'ensemble fourni par {1-$} ne peut pas toujours être défini par une sélection. Il ne s'agit donc pas d'un ensemble naturel. Cela peut être mis en évidence en chargeant les données suivantes, en les ajoutant à une table, puis en effectuant des sélectons via des volets de filtre.
Load * Inline
[Dim1, Dim2, Number
A, X, 1
A, Y, 1
B, X, 1
B, Y, 1];
Si vous effectuez des sélections pour Dim1 et pour Dim2, vous obtenez la vue indiquée dans le tableau suivant.
L'expression d'ensemble de la première mesure utilise un ensemble naturel : elle correspond à la sélection rendue {$}.
La deuxième mesure est différente. Elle utilise {1-$}. Il n'est pas possible d'effectuer une sélection correspondant à cet ensemble ; il s'agit donc d'un ensemble non naturel.
Cette distinction entraîne un certain nombre de conséquences :
-
Les modificateurs d'ensemble peuvent être appliqués uniquement à des identificateurs d'ensemble. Ils ne peuvent pas être appliqués à une expression d'ensemble arbitraire. Par exemple, il n'est pas possible d'utiliser une expression d'ensemble telle que :
{ (BM01 * BM02) <Field={x,y}> }
Ici, les parenthèses (rondes) normales impliquent l'évaluation de l'intersection entre BM01 et BM02 avant l'application du modificateur d'ensemble. Cela est dû au fait qu'il n'existe aucun ensemble d'éléments susceptible d'être modifié.
-
Vous ne pouvez pas utiliser des ensembles non naturels à l'intérieur des fonctions d'élément P() et E(). Ces fonctions renvoient un ensemble d'éléments, mais il n'est pas possible de déduire l'ensemble d'éléments d'un ensemble non naturel.
-
Une mesure utilisant un ensemble non naturel ne peut pas toujours être attribuée à la valeur dimensionnelle appropriée si le modèle de données contient de nombreuses tables. Par exemple, dans le graphique suivant, certains chiffres des ventes exclus sont attribués à la valeur Country correcte, tandis que d'autres ont la valeur NULL pour Country.
Le fait que l'affectation soit effectuée correctement ou non dépend du modèle de données. Dans ce cas, le chiffre ne peut pas être affecté s'il correspond à un pays exclu de la sélection.
Identificateur | Description |
---|---|
1 | Représente l'ensemble complet de tous les enregistrements dans l'application, indépendamment des sélections effectuées. |
$ | Représente les enregistrements de la sélection active. L'expression d'ensemble {$} revient donc à ne pas définir d'expression. |
$1 | Représente la sélection précédente. $2 représente l'avant-dernière sélection, et ainsi de suite. |
$_1 | Représente la sélection suivante (prochaine). $_2 représente la sélection suivante sauf une, et ainsi de suite. |
BM01 | Vous pouvez utiliser n'importe quel ID ou nom de favori. |
MyAltState | Vous pouvez référencer les sélections effectuées dans un état alternatif par le nom de cet état. |
Exemple | Résultat |
---|---|
sum ({1} Sales) | Renvoie le total des ventes pour l'application en ignorant les sélections, mais pas la dimension. |
sum ({$} Sales) |
Renvoie les ventes pour la sélection active, ce qui équivaut à sum(Sales). |
sum ({$1} Sales) |
Renvoie les ventes pour la sélection précédente. |
sum ({BM01} Sales) |
Renvoie les ventes pour le favori intitulé BM01 |
Exemple | Résultat |
---|---|
sum({$<OrderDate = DeliveryDate>} Sales) | Renvoie les ventes pour la sélection active, où OrderDate = DeliveryDate. |
sum({1<Region = {US}>} Sales) |
Renvoie les ventes pour la région USA sans tenir compte de la sélection active. |
sum({$<Region = >} Sales) |
Renvoie les ventes pour la sélection en ayant supprimé la sélection effectuée dans 'Region'. |
sum({<Region = >} Sales) |
Renvoie les mêmes résultats que l'exemple ci-dessus. Lorsque l'ensemble à modifier est omis, la fonction utilise $. |
sum({$<Year={2000}, Region={“U*”}>} Sales) | Renvoie les ventes pour la sélection active, mais en utilisant de nouvelles sélections dans les champs Year et Region. |