Partager via


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 :

  1. 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.

  2. 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.

  3. 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 :

  1. 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.

  2. 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 :

  1. 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.

  2. 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.

Voir aussi

Référence

Fonction ALL

Fonction ALLEXCEPT

Fonction FILTER

Autres ressources

Fonctions de filtrage (DAX)