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
É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 :
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.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.
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 :
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.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 | 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 :
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.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.
contenu Related
fonctions FilterALL fonctionALLEXCEPT fonctionFILTER fonction