ALL

Van toepassing op: Berekende kolomBerekende tabelMetingVisuele berekening

Retourneert alle rijen in een tabel of alle waarden in een kolom, waarbij alle filters worden genegeerd die mogelijk zijn toegepast. Deze functie is handig voor het wissen van filters en het maken van berekeningen voor alle rijen in een tabel.

Syntaxis

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

Parameters

Term Definitie
table De tabel waarop u filters wilt wissen.
column De kolom waarop u filters wilt wissen.

Het argument voor de functie ALL moet een verwijzing naar een basistabel of een verwijzing naar een basiskolom zijn. U kunt geen tabelexpressies of kolomexpressies gebruiken met de functie ALL.

Retourwaarde

De tabel of kolom met filters verwijderd.

Opmerkingen

  • Deze functie wordt niet zelf gebruikt, maar fungeert als een tussenliggende functie die kan worden gebruikt om de set resultaten te wijzigen waarvoor een andere berekening wordt uitgevoerd.

  • Het normale gedrag voor DAX-expressies die de functie ALL() bevatten, is dat alle toegepaste filters worden genegeerd. Er zijn echter enkele scenario's waarin dit niet het geval is vanwege automatisch bestaan, een DAX-technologie die het filteren optimaliseert om de hoeveelheid verwerking te verminderen die vereist is voor bepaalde DAX-query's. Een voorbeeld waarbij automatisch bestaan en ALL() onverwachte resultaten bieden, is bij het filteren op twee of meer kolommen van dezelfde tabel (zoals bij het gebruik van slicers) en er een meting is voor diezelfde tabel die GEBRUIKMAAKT van ALL(). In dit geval voegt automatisch bestaan de meerdere filters samen in één en filtert u alleen op bestaande combinaties van waarden. Door deze samenvoeging wordt de meting berekend op de bestaande combinaties van waarden en wordt het resultaat gebaseerd op gefilterde waarden in plaats van alle waarden zoals verwacht. Zie het artikel sql.bi.comMicrosoft MVP Alberto Ferrari's Understanding DAX Auto-Exist voor meer informatie over automatisch bestaan en het effect ervan op berekeningen.

  • In de volgende tabel wordt beschreven hoe u de functies ALL en ALLEXCEPT in verschillende scenario's kunt gebruiken.

    Functie en gebruik Beschrijving
    ALL() Verwijdert alle filters overal. ALL() kan alleen worden gebruikt om filters te wissen, maar niet om een tabel te retourneren.
    ALL(Table) Hiermee verwijdert u alle filters uit de opgegeven tabel. In feite retourneert ALL(Table) alle waarden in de tabel, waarbij alle filters worden verwijderd uit de context die anders mogelijk is toegepast. Deze functie is handig wanneer u met veel groeperingsniveaus werkt en een berekening wilt maken waarmee een verhouding van een geaggregeerde waarde tot de totale waarde wordt gemaakt. In het eerste voorbeeld ziet u dit scenario.
    ALL (Kolom[, Kolom[, ...]]) Verwijdert alle filters uit de opgegeven kolommen in de tabel; alle andere filters op andere kolommen in de tabel zijn nog steeds van toepassing. Alle kolomargumenten moeten afkomstig zijn uit dezelfde tabel. De variant ALL(Column) is handig als u de contextfilters voor een of meer specifieke kolommen wilt verwijderen en alle andere contextfilters wilt behouden. In de tweede en derde voorbeelden ziet u dit scenario.
    ALLEXCEPT(Table, Column1 [,Column2]...) Hiermee verwijdert u alle contextfilters in de tabel, behalve filters die worden toegepast op de opgegeven kolommen. Dit is een handige snelkoppeling voor situaties waarin u de filters op veel, maar niet alle kolommen in een tabel wilt verwijderen.
  • Deze functie wordt niet ondersteund voor gebruik in de DirectQuery-modus wanneer deze wordt gebruikt in regels voor beveiliging op rijniveau (berekende kolommen of beveiliging op rijniveau).

Voorbeeld 1

Verhouding van categorieverkoop tot totale verkoop berekenen

Stel dat u de hoeveelheid verkopen voor de huidige cel in de draaitabel wilt vinden, gedeeld door de totale verkoop voor alle resellers. Om ervoor te zorgen dat de noemer hetzelfde is, ongeacht hoe de draaitabelgebruiker de gegevens kan filteren of groeperen, definieert u een formule die GEBRUIKMAAKT van ALL om het juiste eindtotaal te maken.

In de volgende tabel ziet u de resultaten wanneer een nieuwe meting, All Reseller Sales Ratio, wordt gemaakt met behulp van de formule die wordt weergegeven in de codesectie. Als u wilt zien hoe dit werkt, voegt u het veld CalendarYear toe aan het gebied Rijlabels van de draaitabel en voegt u het veld ProductCategoryName toe aan het gebied Kolomlabels . Sleep vervolgens de meting All Reseller Sales Ratio naar het gebied Waarden van de draaitabel. Als u de resultaten wilt weergeven als percentages, gebruikt u de opmaakfuncties van Excel om een getalnotatiepercentage toe te passen op de cellen die de meting bevatten.

Rijlabels Accessoires Fietsen Kleding Onderdelen Eindtotaal
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%
Eindtotaal 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])  

De formule wordt als volgt samengesteld:

  1. De teller, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])is de som van de waarden in ResellerSales_USD[SalesAmount_USD] voor de huidige cel in de draaitabel, met contextfilters toegepast op CalendarYear en ProductCategoryName.

  2. Voor de noemer geeft u eerst een tabel op, ResellerSales_USD en gebruikt u de functie ALL om alle contextfilters in de tabel te verwijderen.

  3. Vervolgens gebruikt u de functie SUMX om de waarden in de kolom ResellerSales_USD[SalesAmount_USD] op te tellen. Met andere woorden, u krijgt de som van ResellerSales_USD[SalesAmount_USD] voor alle resellers verkopen.

Voorbeeld 2

De verhouding tussen de productverkoop en de totale verkoop per huidig jaar berekenen

Stel dat u een tabel wilt maken met het verkooppercentage in de loop van de jaren voor elke productcategorie (ProductCategoryName). Als u het percentage voor elk jaar voor elke waarde van ProductCategoryName wilt verkrijgen, moet u de som van de verkoop voor dat specifieke jaar en de productcategorie delen door de som van de verkoop voor dezelfde productcategorie gedurende alle jaren. Met andere woorden, u wilt het filter op ProductCategoryName behouden, maar het filter op het jaar verwijderen bij het berekenen van de noemer van het percentage.

In de volgende tabel ziet u de resultaten wanneer een nieuwe meting, Reseller Sales Year, wordt gemaakt met behulp van de formule die wordt weergegeven in de codesectie. Als u wilt zien hoe dit werkt, voegt u het veld CalendarYear toe aan het gebied Rijlabels van een draaitabel en voegt u het veld ProductCategoryName toe aan het gebied Kolomlabels . Als u de resultaten wilt weergeven als percentages, gebruikt u de opmaakfuncties van Excel om een getalnotatie voor percentages toe te passen op de cellen met de meting Reseller Sales Year.

Rijlabels Accessoires Fietsen Kleding Onderdelen Eindtotaal
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%
Eindtotaal 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]))  

De formule wordt als volgt samengesteld:

  1. De teller, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])is de som van de waarden in ResellerSales_USD[SalesAmount_USD] voor de huidige cel in de draaitabel, met contextfilters toegepast op de kolommen CalendarYear en ProductCategoryName.

  2. Voor de noemer verwijdert u het bestaande filter op CalendarYear met behulp van de functie ALL(Column). Hiermee wordt de som berekend van de resterende rijen in de ResellerSales_USD tabel, nadat de bestaande contextfilters van de kolomlabels zijn toegepast. Het netto-effect is dat voor de noemer de som wordt berekend op de geselecteerde ProductCategoryName (het impliciete contextfilter) en voor alle waarden in Jaar.

Voorbeeld 3

De bijdrage van productcategorieën berekenen aan de totale verkoop per jaar

Stel dat u een tabel wilt maken waarin het percentage verkoop voor elke productcategorie per jaar wordt weergegeven. Als u het percentage voor elke productcategorie in een bepaald jaar wilt verkrijgen, moet u de som van de verkoop voor die specifieke productcategorie (ProductCategoryName) in jaar n berekenen en vervolgens de resulterende waarde delen door de som van de verkoop voor het jaar n over alle productcategorieën. Met andere woorden, u wilt het filter op jaar behouden, maar het filter op ProductCategoryName verwijderen bij het berekenen van de noemer van het percentage.

In de volgende tabel ziet u de resultaten wanneer een nieuwe meting, Reseller Sales CategoryName, wordt gemaakt met behulp van de formule die wordt weergegeven in de codesectie. Als u wilt zien hoe dit werkt, voegt u het veld CalendarYear toe aan het gebied Rijlabels van de draaitabel en voegt u het veld ProductCategoryName toe aan het gebied Kolomlabels . Voeg vervolgens de nieuwe meting toe aan het gebied Waarden van de draaitabel. Als u de resultaten wilt weergeven als percentages, gebruikt u de opmaakfuncties van Excel om een getalnotatie percentage toe te passen op de cellen die de nieuwe meting Reseller Sales CategoryName bevatten.

Rijlabels Accessoires Fietsen Kleding Onderdelen Eindtotaal
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%
Eindtotaal 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]))  

De formule wordt als volgt samengesteld:

  1. De teller, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])is de som van de waarden in ResellerSales_USD[SalesAmount_USD] voor de huidige cel in de draaitabel, met contextfilters toegepast op de velden CalendarYear en ProductCategoryName.

  2. Voor de noemer gebruikt u de functie ALL(Column) om het filter op ProductCategoryName te verwijderen en de som te berekenen van de resterende rijen in de ResellerSales_USD tabel, nadat u de bestaande contextfilters van de rijlabels hebt toegepast. Het netto-effect is dat voor de noemer de som wordt berekend over het geselecteerde jaar (het impliciete contextfilter) en voor alle waarden van ProductCategoryName.

Filterfuncties
ALL, functie
De functie ALLEXCEPT
FILTER, functie