Fonction ALL
Retourne toutes les lignes d'une table, ou toutes les valeurs d'une colonne, en ignorant tous les filtres qui ont pu être appliqués. Cette fonction est utile pour effacer des filtres et créer des calculs sur toutes les lignes d'une table.
Syntaxe
ALL( {<table> | <column>[, <column>[, <column>[,…]]]} )
Paramètres
Terme |
Définition |
---|---|
table |
Table sur laquelle vous souhaitez effacer les filtres. |
column |
Colonne sur laquelle vous souhaitez effacer les filtres. |
L'argument passé à la fonction ALL doit être une référence soit à une table de base, soit à une colonne de base. Vous ne pouvez pas utiliser d'expressions de table ou de colonne avec la fonction ALL.
Valeur de retour
Table ou colonne avec les filtres supprimés.
Notes
Cette fonction n'est pas utilisée seule, mais sert de fonction intermédiaire qui peut être utilisée pour modifier le jeu de résultats sur lequel un autre calcul est effectué.
<État de la rubrique :> certaines informations de cette rubrique constituent une documentation préliminaire et peuvent faire l'objet de modifications dans les versions à venir. Ces informations préliminaires décrivent les nouvelles fonctionnalités ou les modifications apportées à des fonctionnalités existantes de Microsoft SQL Server 2012 Service Pack 1 (SP1) Community Technology Preview 4 (CTP4). Dans les cas où [Column] est marquée en tant que colonne Date à l'aide de Marquer en tant que table de dates
Comme décrit dans le tableau ci-dessous, vous pouvez utiliser les fonctions ALL et ALLEXCEPT dans différents scénarios.
Fonction et utilisation |
Description |
---|---|
ALL(Table) |
Supprime tous les filtres de la table spécifiée. En fait, ALL(Table) retourne toutes les valeurs de la table, en supprimant du contexte tous les filtres qui auraient sinon pu être appliqués. Cette fonction est utile lorsque vous travaillez avec de nombreux niveaux de regroupement et souhaitez créer un calcul qui crée un ratio d'une valeur agrégée sur une valeur totale. Le premier exemple illustre ce scénario. |
ALL (Colonne[, Colonne[, …]]) |
Supprime tous les filtres des colonnes spécifiées dans la table ; tous les autres filtres sur les autres colonnes de la table restent applicables. Tous les arguments de colonne doivent venir de la même table. La variante ALL(Colonne) est utile lorsque vous souhaitez supprimer les filtres de contexte d'une colonne spécifique ou plus et conserver les autres. Les deuxième et troisième exemples illustrent ce scénario. |
ALLEXCEPT (table, Colonne1 [, Colonne2]...) |
Supprime tous les filtres de contexte de la table, à l'exception de ceux qui sont appliqués aux colonnes spécifiées. Ceci est un raccourci commode lorsque vous souhaitez supprimer les filtres sur beaucoup de colonnes d'une table, mais pas toutes. |
Exemple : calculer le ratio des ventes par catégorie par rapport aux ventes totales
Description
Imaginons que vous souhaitiez calculer le montant des ventes pour la cellule active de votre tableau croisé dynamique divisé par le total des ventes de tous les revendeurs. Pour vous assurer que le dénominateur est le même quelle que soit la façon dont l'utilisateur du tableau croisé dynamique filtre ou regroupe les données, vous définissez une formule qui utilise ALL pour créer le total général approprié.
Le tableau suivant présente les résultats obtenus lorsqu'une nouvelle mesure, All Reseller Sales Ratio est créée à l'aide de la formule indiquée dans la section de code. Pour voir comment cela fonctionne, ajoutez le champ CalendarYear à la zone Étiquettes de ligne du tableau croisé dynamique et le champ ProductCategoryName à la zone Étiquettes de colonne. Faites ensuite glisser la mesure All Reseller Sales Ratio vers la zone Valeurs du tableau croisé dynamique. Pour afficher les résultats sous forme de pourcentages, utilisez les fonctionnalités de mise en forme d'Excel pour appliquer une mise en forme des nombres de type pourcentage aux cellules contenant la mesure.
All Reseller Sales |
Étiquettes de colonne |
|
|
|
|
---|---|---|---|---|---|
Étiquettes de ligne |
Accessories |
Bikes |
Clothing |
Components |
Total général |
2005 |
0.02% |
9.10% |
0.04% |
0.75% |
9.91% |
2006 |
0.11% |
24.71% |
0.60% |
4.48% |
29.90% |
2007 |
0.36% |
31.71% |
1.07% |
6.79% |
39.93% |
2008 |
0.20% |
16.95% |
0.48% |
2.63% |
20.26% |
Total général |
0.70% |
82.47% |
2.18% |
14.65% |
100.00% |
Code
=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
Commentaires
La formule est construite comme suit :
Le numérateur, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), est la somme des valeurs de ResellerSales_USD[SalesAmount_USD] pour la cellule active du tableau croisé dynamique, avec les filtres de contexte appliqués à CalendarYear et ProductCategoryName.
Pour le dénominateur, vous commencez par spécifier une table, ResellerSales_USD, et utilisez la fonction ALL pour supprimer tous les filtres de contexte de la table.
Vous utilisez ensuite la fonction SUMX pour additionner les valeurs de la colonne ResellerSales_USD[SalesAmount_USD]. En d'autres termes, vous obtenez la somme de ResellerSales_USD[SalesAmount_USD] pour toutes les ventes des revendeurs.
Pour plus d'informations sur la création de mesures, consultez Créer une mesure dans un tableau croisé dynamique ou un graphique croisé dynamique.
[!REMARQUE]
L'exemple ci-dessus utilise les tables ResellerSales_USD, DateTime et ProductCategory de l'exemple de classeur DAX. Pour plus d'informations sur les exemples, consultez Obtenir des exemples de données.
Exemple : calculer le ratio des ventes de produits par rapport aux ventes totales pour l'année en cours
Description
Imaginons que vous souhaitiez créer un tableau montrant une comparaison au fil des ans du pourcentage de ventes pour chaque catégorie de produits (ProductCategoryName). Pour obtenir le pourcentage pour chaque année sur chaque valeur de ProductCategoryName, vous devez diviser la somme des ventes de l'année et de la catégorie de produits en question par la somme des ventes de la même catégorie de produits sur toutes les années. En d'autres termes, vous souhaitez garder le filtre sur ProductCategoryName, mais supprimer le filtre sur l'année lors du calcul du dénominateur du pourcentage.
Le tableau suivant présente les résultats obtenus lorsqu'une nouvelle mesure, Reseller Sales Year est créée à l'aide de la formule indiquée dans la section de code. Pour voir comment cela fonctionne, ajoutez le champ CalendarYear à la zone Étiquettes de ligne du tableau croisé dynamique et le champ ProductCategoryName à la zone Étiquettes de colonne. Pour afficher les résultats sous forme de pourcentages, utilisez les fonctionnalités de mise en forme d'Excel pour appliquer un format de nombre de type pourcentage aux cellules contenant la mesure Reseller Sales Year.
Reseller Sales Year |
Étiquettes de colonne |
|
|
|
|
---|---|---|---|---|---|
Étiquettes de ligne |
Accessories |
Bikes |
Clothing |
Components |
Total général |
2005 |
3.48% |
11.03% |
1.91% |
5.12% |
9.91% |
2006 |
16.21% |
29.96% |
27.29% |
30.59% |
29.90% |
2007 |
51.62% |
38.45% |
48.86% |
46.36% |
39.93% |
2008 |
28.69% |
20.56% |
21.95% |
17.92% |
20.26% |
Total général |
100.00% |
100.00% |
100.00% |
100.00% |
100.00% |
Code
=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))
Commentaires
La formule est construite comme suit :
Le numérateur, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), est la somme des valeurs de ResellerSales_USD[SalesAmount_USD] pour la cellule active dans le tableau croisé dynamique, avec les filtres de contexte appliqués aux colonnes CalendarYear et ProductCategoryName.
Pour le dénominateur, vous supprimez le filtre existant sur CalendarYear à l'aide de la fonction ALL(Colonne). La somme est alors calculée sur les lignes restantes de la table ResellerSales_USD, après avoir appliqué les filtres de contexte existants des étiquettes de colonne. Le résultat est que pour le dénominateur, la somme est calculée sur le ProductCategoryName sélectionné (le filtre de contexte implicite) et pour toutes les valeurs de Year.
Pour plus d'informations sur la création de mesures, consultez Créer une mesure dans un tableau croisé dynamique ou un graphique croisé dynamique.
[!REMARQUE]
Cet exemple utilise les tables ResellerSales_USD, DateTime et ProductCategory de l'exemple de classeur DAX. Pour plus d'informations sur les exemples, consultez Obtenir des exemples de données.
Exemple : calculer la contribution des catégories de produits dans les ventes totales par année
Description
Supposons que vous souhaitiez créer un tableau qui indique le pourcentage de ventes pour chaque catégorie de produits, sur une base annuelle. Pour obtenir le pourcentage pour chaque catégorie de produits sur une année donnée, vous devez calculer la somme des ventes de la catégorie de produits (ProductCategoryName) particulière pour l'année n, puis diviser la valeur obtenue par la somme des ventes de l'année n sur toutes les catégories de produits. En d'autres termes, vous souhaitez garder le filtre sur Year mais le supprimer sur ProductCategoryName lors du calcul du dénominateur du pourcentage.
Le tableau suivant présente les résultats obtenus lorsqu'une nouvelle mesure, Reseller Sales CategoryName, est créée à l'aide de la formule indiquée dans la section de code. Pour voir comment cela fonctionne, ajoutez le champ CalendarYear à la zone Étiquettes de ligne du tableau croisé dynamique et le champ ProductCategoryName à la zone Étiquettes de colonne. Ajoutez ensuite la nouvelle mesure à la zone Valeurs du tableau croisé dynamique. Pour afficher les résultats sous forme de pourcentages, utilisez les fonctionnalités de mise en forme d'Excel pour appliquer un format de nombre de type pourcentage aux cellules qui contiennent la nouvelle mesure, Reseller Sales CategoryName.
Reseller Sales CategoryName |
Étiquettes de colonne |
|
|
|
|
---|---|---|---|---|---|
Étiquettes de ligne |
Accessories |
Bikes |
Clothing |
Components |
Total général |
2005 |
0.25% |
91.76% |
0.42% |
7.57% |
100.00% |
2006 |
0.38% |
82.64% |
1.99% |
14.99% |
100.00% |
2007 |
0.90% |
79.42% |
2.67% |
17.01% |
100.00% |
2008 |
0.99% |
83.69% |
2.37% |
12.96% |
100.00% |
Total général |
0.70% |
82.47% |
2.18% |
14.65% |
100.00% |
Code
=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))
Commentaires
La formule est construite comme suit :
Le numérateur, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), est la somme des valeurs de ResellerSales_USD[SalesAmount_USD] pour la cellule active du tableau croisé dynamique, avec les filtres de contexte appliqués aux champs CalendarYear et ProductCategoryName.
Pour le dénominateur, vous utilisez la fonction ALL(Colonne) pour supprimer le filtre sur ProductCategoryName et calculer la somme sur les lignes restantes de la table ResellerSales_USD, après avoir appliqué les filtres de contexte existants des étiquettes de ligne. Le résultat est que pour le dénominateur, la somme est calculée sur la valeur Year sélectionnée (le filtre de contexte implicite) et pour toutes les valeurs de ProductCategoryName.
Pour plus d'informations sur la création de mesures, consultez Créer une mesure dans un tableau croisé dynamique ou un graphique croisé dynamique.
[!REMARQUE]
Cet exemple utilise les tables ResellerSales_USD, DateTime et ProductCategory de l'exemple de classeur DAX. Pour plus d'informations sur les exemples, consultez Obtenir des exemples de données.