Lire en anglais

Partager via


TOUT

s’applique à :colonne calculéetable calculéemesurecalcul visuel

Retourne toutes les lignes d’une table, ou toutes les valeurs d’une colonne, ignorant les filtres qui ont pu être appliqués. Cette fonction est utile pour effacer les 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 Tableau sur lequel vous souhaitez effacer les filtres.
column Colonne sur laquelle vous souhaitez effacer les filtres.

L’argument de la fonction ALL doit être une référence à une table de base ou une référence à une colonne de base. Vous ne pouvez pas utiliser des expressions de table ou des expressions de colonne avec la fonction ALL.

Valeur de retour

Table ou colonne avec filtres supprimés.

Remarques

  • Cette fonction n’est pas utilisée par elle-même, mais sert de fonction intermédiaire qui peut être utilisée pour modifier l’ensemble de résultats sur lequel un autre calcul est effectué.

  • Le comportement normal des expressions DAX contenant la fonction ALL() est que tous les filtres appliqués seront ignorés. Toutefois, il existe certains scénarios où cela n’est pas le cas en raison de auto-exist, une technologie DAX qui optimise le filtrage afin de réduire la quantité de traitement requise pour certaines requêtes DAX. Par exemple, l’existence automatique et ALL() fournissent des résultats inattendus consiste à filtrer sur deux colonnes ou plus de la même table (comme lorsque vous utilisez des segments) et qu’il existe une mesure sur cette même table qui utilise ALL(). Dans ce cas, l’existence automatique fusionner les filtres multiples en un seul et ne filtre que sur les combinaisons de valeurs existantes. En raison de cette fusion, la mesure sera calculée sur les combinaisons existantes de valeurs et le résultat sera basé sur des valeurs filtrées au lieu de toutes les valeurs attendues. Pour en savoir plus sur l’existence automatique et son effet sur les calculs, consultez l’article Understanding DAX Auto-Exist de Microsoft MVP Alberto Ferrari sur sql.bi.com.

  • Le tableau suivant décrit comment utiliser les fonctions ALL et ALLEXCEPT dans différents scénarios.

    Fonction et utilisation Description
    ALL() Supprime tous les filtres partout. ALL() ne peut être utilisé que pour effacer les filtres, mais pas pour retourner une table.
    ALL(Table) Supprime tous les filtres de la table spécifiée. En effet, ALL(Table) retourne toutes les valeurs de la table, en supprimant tous les filtres du contexte qui auraient pu être appliqués. Cette fonction est utile lorsque vous travaillez avec de nombreux niveaux de regroupement et que vous souhaitez créer un calcul qui crée un rapport d’une valeur agrégée à la valeur totale. Le premier exemple illustre ce scénario.
    ALL (Column[, Column[, ...]]) Supprime tous les filtres des colonnes spécifiées dans la table ; tous les autres filtres sur d’autres colonnes de la table s’appliquent toujours. Tous les arguments de colonne doivent provenir de la même table. La variante ALL(Column) est utile lorsque vous souhaitez supprimer les filtres de contexte pour une ou plusieurs colonnes spécifiques et conserver tous les autres filtres de contexte. Les deuxième et troisième exemples illustrent ce scénario.
    ALLEXCEPT(Table, Column1 [,Column2]...) Supprime tous les filtres de contexte dans la table, à l’exception des filtres appliqués aux colonnes spécifiées. Il s’agit d’un raccourci pratique pour les situations dans lesquelles vous souhaitez supprimer les filtres sur de nombreuses colonnes, mais pas toutes, dans une table.
  • Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées ou les règles de sécurité au niveau des lignes (RLS).

Exemple 1

Calculer le ratio des ventes de catégorie à total des ventes

Supposons que vous souhaitez trouver le montant des ventes pour la cellule active, dans votre tableau croisé dynamique, divisé par le total des ventes pour tous les revendeurs. Pour vous assurer que le dénominateur est le même, quel que soit le filtrage ou le regroupement des données par l’utilisateur de tableau croisé dynamique, vous définissez une formule qui utilise ALL pour créer le total général correct.

Le tableau suivant montre les résultats 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 lignes du tableau croisé dynamique, puis ajoutez le champ ProductCategoryName à la zone étiquettes de colonne . Ensuite, faites glisser la mesure, Tous lesDe ventes de revendeurs, 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 de nombre de pourcentage aux cellules qui contiennent la mesure.

Étiquettes de ligne Accessoires Vélos Vêtement Composants 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%

formule

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  

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 des 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 de revendeurs.

Exemple 2

Calculer le ratio des ventes de produits au total des ventes au cours de l’année en cours

Supposons que vous souhaitez créer une table affichant le pourcentage de ventes comparées au cours des années pour chaque catégorie de produit (ProductCategoryName). Pour obtenir le pourcentage pour chaque année sur chaque valeur de ProductCategoryName, vous devez diviser la somme des ventes de cette année et de cette catégorie de produit par la somme des ventes pour la même catégorie de produits sur toutes les années. En d’autres termes, vous souhaitez conserver le filtre sur ProductCategoryName, mais supprimer le filtre sur l’année lors du calcul du dénominateur du pourcentage.

Le tableau suivant montre les résultats 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, aux étiquettes de ligne zone d’un tableau croisé dynamique, puis ajoutez 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 pourcentage aux cellules contenant la mesure, Reseller Sales Year.

Étiquettes de ligne Accessoires Vélos Vêtement Composants 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%

formule

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))  

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 des 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(Column). Cela calcule la somme sur les lignes restantes de la table ResellerSales_USD, après avoir appliqué les filtres de contexte existants à partir des étiquettes de colonne. L’effet net est que pour le dénominateur, la somme est calculée sur le ProductCategoryName sélectionné (filtre de contexte implicite) et pour toutes les valeurs dans Year.

Exemple 3

Calculer la contribution des catégories de produits au total des ventes par année

Supposons que vous souhaitez créer une table qui affiche le pourcentage de ventes pour chaque catégorie de produit, sur une base annuelle. Pour obtenir le pourcentage de chaque catégorie de produit dans une année particulière, vous devez calculer la somme des ventes pour cette catégorie de produit spécifique (ProductCategoryName) dans l’année n, puis diviser la valeur résultante par la somme des ventes de l’année n sur toutes les catégories de produits. En d’autres termes, vous souhaitez conserver le filtre sur l’année, mais supprimer le filtre sur ProductCategoryName lors du calcul du dénominateur du pourcentage.

Le tableau suivant montre les résultats 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, puis ajoutez le champ ProductCategoryName à la zone étiquettes de colonne . Ajoutez ensuite la nouvelle mesure à la zone valeurs de 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 pourcentage aux cellules qui contiennent la nouvelle mesure, Reseller Sales CategoryName.

Étiquettes de ligne Accessoires Vélos Vêtement Composants 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%

formule

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))  

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 des filtres de contexte appliqués aux champs, CalendarYear et ProductCategoryName.

  2. Pour le dénominateur, vous utilisez la fonction ALL(Column), 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. L’effet net est que, pour le dénominateur, la somme est calculée sur l’année sélectionnée (le filtre de contexte implicite) et pour toutes les valeurs de ProductCategoryName.

fonctions de filtre
fonction ALL
fonction ALLEXCEPT
fonction FILTER