Partager via


ALL

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

Retourne all les lignes d’une table, orall l'values d’une colonne, ignorant les filters qui auraient pu être appliquées. Cette fonction est utile pour effacer filtersand création de calculs sur all les lignes d’une table.

Syntaxe

ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )

Paramètres

Terme Définition
table Tableau sur lequel vous souhaitez effacer filters.
column Colonne sur laquelle vous souhaitez effacer filters.

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

Retourner value

La table or colonne avec filters supprimée.

Remarques

  • Cette fonction est not 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 toutes les filters appliquées seront ignorées. Toutefois, il existe certains scénarios où cela est not 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 andALL() fournit des résultats inattendus consiste à filtrer sur deux or plus de colonnes de la même table (comme lors de l’utilisation de segments), and il existe un measure sur cette même table qui utilise ALL(). Dans ce cas, l’existence automatique fusionner les filters multiples en une seule and n'filter que sur les combinaisons existantes de values. En raison de cette fusion, la measure sera calculée sur les combinaisons existantes de valuesand le résultat sera basé sur des values filtrées au lieu de allvalues comme prévu. Pour en savoir plus sur l’existence automatique and son effect 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 ALLandALLEXCEPT dans différents scénarios.

    Utilisation de la fonction and Description
    ALL() Supprime allfilters partout. ALL() ne peut être utilisé que pour effacer filters, mais not pour retourner une table.
    ALL(tableau) Supprime allfilters de la table spécifiée. Dans effect, ALL(Table) retourne all de l'values dans la table, en supprimant tout filters du contexte qui aurait pu être appliqué. Cette fonction est utile lorsque vous travaillez avec de nombreux niveaux de regroupement, and souhaitez créer un calcul qui crée un rapport d’un value agrégé à la valuetotale. L’exemple first illustre ce scénario.
    ALL (Column[, Column[, ...]]) Supprime allfilters des colonnes spécifiées dans la table ; all d’autres filters sur d’autres colonnes de la table s’appliquent toujours. All arguments de colonne doivent provenir de la même table. La variante ALL(colonne) est utile lorsque vous souhaitez supprimer le contexte filters d’une or colonnes plus spécifiques and pour conserver all d’autres filtersde contexte. Les secondand troisième exemples illustrent ce scénario.
    ALLEXCEPT(Table, Colonne1 [,Colonne2]...) Supprime all contexte filters dans la table exceptfilters appliquées aux colonnes spécifiées. Il s’agit d’un raccourci pratique pour les situations dans lesquelles vous souhaitez supprimer la filters sur plusieurs, mais notall, colonnes dans une table.
  • Cette fonction est not prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées or règles de sécurité au niveau des lignes (RLS).

Exemple 1

rapport Calculate des ventes de catégorie à total des ventes

Supposons que vous souhaitez find le montant des ventes pour la cellule active, dans votre tableau croisé dynamique, divisé par le total des ventes pour les revendeurs all. Pour vous assurer que le dénominateur est le même que la façon dont l’utilisateur de tableau croisé dynamique peut filtrer or regrouper les données, vous define une formule qui utilise ALL pour créer le total général correct.

Le tableau suivant montre les résultats lorsqu’une nouvelle measure, 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 aux étiquettes de ligne zone du tableau croisé dynamique, ajoutez le champ ProductCategoryName à la zone étiquettes de colonne . Ensuite, faites glisser le measure, All Reseller Sales Ratio, vers la zone Values 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 contains le measure.

É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 le sum du values dans ResellerSales_USD[SalesAmount_USD] pour la cellule active du tableau croisé dynamique, avec un contexte filters appliqué à CalendarYear and ProductCategoryName.

  2. Pour le dénominateur, vous commencez par spécifier une table, ResellerSales_USD, and utiliser la fonction ALL pour supprimer all contexte filters sur la table.

  3. Vous utilisez ensuite la fonction SUMX pour sum la values dans la colonne ResellerSales_USD[SalesAmount_USD]. En d’autres termes, vous obtenez la sum de ResellerSales_USD[SalesAmount_USD] pour les ventes des revendeurs all.

Exemple 2

ratio Calculate des ventes totales de Product au total des ventes par le biais du Year actuel

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 product (ProductCategoryName). Pour obtenir le pourcentage de chaque year sur chaque value de ProductCategoryName, vous devez divide le sum des ventes pour cette catégorie de yearandproduct particulière par le sum des ventes pour la même catégorie de product sur all ans. En d’autres termes, vous souhaitez conserver le filter sur ProductCategoryName, mais supprimer le filter sur le year lors du calcul du dénominateur du pourcentage.

Le tableau suivant montre les résultats lorsqu’une nouvelle measure, 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 au étiquettes de lignes zone d’un tableau croisé dynamique, and 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 nombre de pourcentages format aux cellules contenant le measure, 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 sum de l'values dans ResellerSales_USD[SalesAmount_USD] pour la cellule active du tableau croisé dynamique, avec un contexte filters appliqué aux colonnes CalendarYear and ProductCategoryName.

  2. Pour le dénominateur, vous supprimez la filter existante sur CalendarYear à l’aide de la fonction ALL(Column). Cela calcule les sum sur les lignes restantes de la table ResellerSales_USD, après avoir appliqué le contexte existant filters à partir des étiquettes de colonne. Le effect net est que pour le dénominateur le sum est calculé sur le ProductCategoryName sélectionné (le contexte implicite filter) and pour allvalues dans Year.

Exemple 3

contribution Calculate des catégories de Product au total des ventes par Year

Supposons que vous souhaitez créer une table qui affiche le pourcentage de ventes pour chaque catégorie de product, sur une base year-by-year. Pour obtenir le pourcentage de chaque catégorie de product dans un yearparticulier, vous devez calculate le sum des ventes pour cette catégorie de product particulière (ProductCategoryName) dans year n, and puis divide la value résultante par le sum des ventes pour le year n sur allproduct catégories. En d’autres termes, vous souhaitez conserver la filter sur year, mais supprimer la filter sur ProductCategoryName lors du calcul du dénominateur du pourcentage.

Le tableau suivant montre les résultats lorsqu’une nouvelle measure, 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, ajoutez le champ ProductCategoryName à la zone étiquettes de colonne . Ajoutez ensuite la nouvelle measure à la zone Values 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 nombre de pourcentages format aux cellules qui contiennent le nouveau measure, 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 le sum de l'values dans ResellerSales_USD[SalesAmount_USD] pour la cellule active du tableau croisé dynamique, avec un contexte filters appliqué aux champs, CalendarYear and ProductCategoryName.

  2. Pour le dénominateur, vous utilisez la fonction, ALL(Colonne), pour supprimer l'filter sur ProductCategoryName andcalculate le sum sur les lignes restantes de la table ResellerSales_USD, après avoir appliqué le contexte existant filters des étiquettes de ligne. Le effect net est que, pour le dénominateur, le sum est calculé sur le Year sélectionné (le contexte implicite filter) and pour allvalues productCategoryName.

fonctions FilterALL fonctionALLEXCEPT fonctionFILTER fonction