Dela via


ALL

gäller för:beräknad kolumnberäknad tabellMeasurevisuell beräkning

Returnerar all raderna i en tabell orallvalues i en kolumn och ignorerar alla filters som kan ha tillämpats. Den här funktionen är användbar för att rensa filtersand att skapa beräkningar på all raderna i en tabell.

Syntax

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

Parametrar

Term Definition
table Tabellen som du vill rensa filters på.
column Kolumnen som du vill rensa filters på.

Argumentet för funktionen ALL måste antingen vara en referens till en bastabell or en referens till en baskolumn. Du kan inte använda tabelluttryck or kolumnuttryck med funktionen ALL.

Returnera value

Tabellen or kolumn med filters borttagen.

Anmärkningar

  • Den här funktionen används not av sig själv, men fungerar som en mellanliggande funktion som kan användas för att ändra den uppsättning resultat som någon annan beräkning utförs över.

  • Det normala beteendet för DAX uttryck som innehåller funktionen ALL() är att alla filters som tillämpas ignoreras. Det finns dock vissa scenarier där detta är not fallet på grund av auto-exist, en DAX teknik som optimerar filtrering för att minska mängden bearbetning som krävs för vissa DAX frågor. Ett exempel där det finns automatiskt andALL() ger oväntade resultat är när du filtrerar på två or fler kolumner i samma tabell (till exempel när du använder utsnitt), and det finns en measure i samma tabell som använder ALL(). I det här fallet automatiskt sammanfogning flera filters till en and endast filter på befintliga kombinationer av values. På grund av den här sammanfogningen beräknas measure på befintliga kombinationer av valuesand resultatet baseras på filtrerade values i stället för allvalues som förväntat. Mer information om automatisk and dess effect om beräkningar finns i Microsoft MVP Alberto Ferraris artikel Understanding DAX Auto-Exist om sql.bi.com.

  • I följande tabell beskrivs hur du kan använda ALLandALLEXCEPT funktioner i olika scenarier.

    Funktionsanvändning and Beskrivning
    ALL() Tar bort allfilters överallt. ALL() kan bara användas för att rensa filters men not för att returnera en tabell.
    ALL(tabell) Tar bort allfilters från den angivna tabellen. I effectreturnerar ALL(tabell) all av values i tabellen och tar bort alla filters från kontexten som annars kan ha tillämpats. Den här funktionen är användbar när du arbetar med många grupperingsnivåer and vill skapa en beräkning som skapar ett förhållande mellan en aggregerad value och den totala value. Det first exemplet visar det här scenariot.
    ALL (Column[, Column[, ...]]) Tar bort allfilters från de angivna kolumnerna i tabellen. all andra filters på andra kolumner i tabellen gäller fortfarande. All kolumnargument måste komma från samma tabell. Varianten ALL(kolumn) är användbar när du vill ta bort kontexten filters för en or mer specifika kolumner and för att behålla all annan kontext filters. De secondand tredje exemplen visar det här scenariot.
    ALLEXCEPT(Tabell, Kolumn1 [,Kolumn2]...) Tar bort all kontext filters i tabellen exceptfilters som tillämpas på de angivna kolumnerna. Det här är en praktisk genväg för situationer där du vill ta bort filters på många, men notall, kolumner i en tabell.
  • Den här funktionen stöds not för användning i DirectQuery-läge när den används i beräknade kolumner or regler för säkerhet på radnivå (RLS).

Exempel 1

Calculate förhållandet mellan kategoriförsäljning och total försäljning

Anta att du vill find försäljningsbeloppet för den aktuella cellen i pivottabellen dividerat med den totala försäljningen för all återförsäljare. För att säkerställa att nämnaren är densamma oavsett hur pivottabellanvändaren kan filtrera or gruppera data, define du en formel som använder ALL för att skapa rätt totalsumma.

Följande tabell visar resultatet när en ny measure, All Reseller Sales Ratio, skapas med hjälp av formeln som visas i kodavsnittet. Om du vill se hur det fungerar lägger du till fältet CalendarYear i området Radetiketter i pivottabellen and lägga till fältet ProductCategoryName i kolumnetiketter området. Dra sedan measure, All Reseller Sales Ratio, till området Values i pivottabellen. Om du vill visa resultatet som procenttal använder du formateringsfunktionerna i Excel för att tillämpa en procentsatsformatering på cellerna som containsmeasure.

Radetiketter Tillbehör Cyklar Kläder Komponenter Totalsumma
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%
Totalsumma 0,70% 82.47% 2.18% 14,65% 100,00%

Formel

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

Formeln konstrueras på följande sätt:

  1. Täljaren, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), är sum för values i ResellerSales_USD[SalesAmount_USD] för den aktuella cellen i pivottabellen, med kontext filters tillämpas på CalendarYear and ProductCategoryName.

  2. För nämnaren börjar du med att ange en tabell, ResellerSales_USD, and använda funktionen ALL för att ta bort all kontext filters i tabellen.

  3. Sedan använder du funktionen SUMX för att sumvalues i kolumnen ResellerSales_USD[SalesAmount_USD]. Med andra ord får du sum av ResellerSales_USD[SalesAmount_USD] för försäljning av all återförsäljare.

Exempel 2

Calculate förhållandet mellan Product försäljning och total försäljning via aktuell Year

Anta att du vill skapa en tabell som visar procentandelen försäljning jämfört med åren för varje product kategori (ProductCategoryName). För att få procentandelen för varje year för varje value i ProductCategoryName måste du dividesum för den specifika yearandproduct kategorin efter sum av försäljningen för samma product kategori under all år. Med andra ord vill du behålla filter på ProductCategoryName men ta bort filter på year när du beräknar nämnaren för procentandelen.

Följande tabell visar resultatet när en ny measure, Reseller Sales Year, skapas med hjälp av formeln som visas i kodavsnittet. Om du vill se hur detta fungerar lägger du till fältet CalendarYear i området Radetiketter i en pivottabell and lägga till fältet ProductCategoryName i kolumnetiketter området. Om du vill visa resultatet som procenttal använder du Excels formateringsfunktioner för att tillämpa ett procenttal format på cellerna som innehåller measure, Reseller Sales Year.

Radetiketter Tillbehör Cyklar Kläder Komponenter Totalsumma
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%
Totalsumma 100,00% 100,00% 100,00% 100,00% 100,00%

Formel

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

Formeln konstrueras på följande sätt:

  1. Täljaren, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), är sum för values i ResellerSales_USD[SalesAmount_USD] för den aktuella cellen i pivottabellen, med kontext filters tillämpas på kolumnerna CalendarYear and ProductCategoryName.

  2. För nämnaren tar du bort den befintliga filter på CalendarYear med hjälp av funktionen ALL(kolumn). Detta beräknar sum över de återstående raderna i den ResellerSales_USD tabellen, efter att du har tillämpat den befintliga kontexten filters från kolumnetiketterna. Netto effect är att för nämnaren beräknas sum över det valda ProductCategoryName (den underförstådda kontexten filter) and för allvalues i Year.

Exempel 3

Calculate bidrag från Product kategorier till total försäljning per Year

Anta att du vill skapa en tabell som visar procentandelen försäljning för varje product kategori yearyear basis. För att få procentandelen för varje product kategori i en viss yearmåste du calculatesum för den specifika product kategorin (ProductCategoryName) i year n, and sedan divide den resulterande value av sum av försäljningen för year n över allproduct kategorier. Med andra ord vill du behålla filter på year men ta bort filter på ProductCategoryName när du beräknar nämnaren för procentandelen.

Följande tabell visar resultatet när en ny measure, Reseller Sales CategoryName, skapas med hjälp av formeln som visas i kodavsnittet. Om du vill se hur det fungerar lägger du till fältet CalendarYear i området Radetiketter i pivottabellen and lägga till fältet ProductCategoryName i kolumnetiketter området. Lägg sedan till den nya measure i det Values området i pivottabellen. Om du vill visa resultatet som procenttal använder du Excels formateringsfunktioner för att tillämpa ett procenttal format på cellerna som innehåller den nya measure, Reseller Sales CategoryName.

Radetiketter Tillbehör Cyklar Kläder Komponenter Totalsumma
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%
Totalsumma 0,70% 82.47% 2.18% 14,65% 100,00%

Formel

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

Formeln konstrueras på följande sätt:

  1. Täljaren, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), är sum för values i ResellerSales_USD[SalesAmount_USD] för den aktuella cellen i pivottabellen, med kontext filters tillämpas på fälten CalendarYear and ProductCategoryName.

  2. För nämnaren använder du funktionen ALL(Kolumn) för att ta bort filter på ProductCategoryName andcalculatesum över de återstående raderna i tabellen ResellerSales_USD, efter att du har tillämpat den befintliga kontexten filters från radetiketterna. Netto effect är att för nämnaren beräknas sum över den valda Year (den underförstådda kontexten filter) and för allvalues i ProductCategoryName.

Filter funktionerALL funktionALLEXCEPT funktionFILTER funktion