Dela via


ALL

Gäller för: Beräknad kolumn Beräknad tabell Mått Visuell beräkning

Returnerar alla rader i en tabell, eller alla värden i en kolumn, och ignorerar eventuella filter som kan ha tillämpats. Den här funktionen är användbar för att rensa filter och skapa beräkningar på alla rader i en tabell.

Syntax

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

Parametrar

Period Definition
table Den tabell som du vill rensa filter på.
column Kolumnen som du vill rensa filter på.

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

Returvärde

Tabellen eller kolumnen med filter borttagna.

Kommentarer

  • Den här funktionen används inte 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 filter som tillämpas ignoreras. Det finns dock vissa scenarier där detta inte är fallet på grund av att det finns automatiskt, 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 auto-exist och ALL() ger oväntade resultat är när du filtrerar på två eller flera kolumner i samma tabell (som när du använder utsnitt), och det finns ett mått på samma tabell som använder ALL(). I det här fallet sammanfogar automatiskt flera filter till ett och filtrerar endast på befintliga kombinationer av värden. På grund av den här sammanfogningen beräknas måttet på befintliga kombinationer av värden och resultatet baseras på filtrerade värden i stället för alla värden som förväntat. Mer information om auto-exist och dess effekt på beräkningar finns i Microsoft MVP Alberto Ferrari's Understanding DAX Auto-Exist artikel om sql.bi.com.

  • I följande tabell beskrivs hur du kan använda funktionerna ALL och ALLEXCEPT i olika scenarier.

    Funktion och användning beskrivning
    ALL() Tar bort alla filter överallt. ALL() kan bara användas för att rensa filter men inte för att returnera en tabell.
    ALL(Table) Tar bort alla filter från den angivna tabellen. I själva verket returnerar ALL(Table) alla värden i tabellen, vilket tar bort eventuella filter 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 och vill skapa en beräkning som skapar ett förhållande mellan ett aggregerat värde och det totala värdet. Det första exemplet visar det här scenariot.
    ALL (Column[, Column[, ...]]) Tar bort alla filter från de angivna kolumnerna i tabellen. alla andra filter på andra kolumner i tabellen gäller fortfarande. Alla kolumnargument måste komma från samma tabell. VARIANTEN ALL(Column) är användbar när du vill ta bort kontextfiltren för en eller flera specifika kolumner och behålla alla andra kontextfilter. Det andra och tredje exemplet visar det här scenariot.
    ALLEXCEPT(Table, Column1 [,Column2]...) Tar bort alla kontextfilter i tabellen förutom filter som tillämpas på de angivna kolumnerna. Det här är en praktisk genväg för situationer där du vill ta bort filtren för många, men inte alla, kolumner i en tabell.
  • Den här funktionen stöds inte för användning i DirectQuery-läge när den används i beräknade kolumner eller säkerhetsregler på radnivå (RLS).

Exempel 1

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

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

Följande tabell visar resultatet när ett nytt mått, 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 och lägger till fältet ProductCategoryName i området Kolumnetiketter . Dra sedan måttet All Reseller Sales Ratio till området Värden 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 innehåller måttet.

Radetiketter Accessoarer 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 summan av värdena i ResellerSales_USD[SalesAmount_USD] för den aktuella cellen i pivottabellen, med kontextfilter som tillämpas på CalendarYear och ProductCategoryName.

  2. För nämnaren börjar du med att ange en tabell, ResellerSales_USD, och använder funktionen ALL för att ta bort alla kontextfilter i tabellen.

  3. Sedan använder du funktionen SUMX för att summera värdena i kolumnen ResellerSales_USD[SalesAmount_USD]. Med andra ord får du summan av ResellerSales_USD[SalesAmount_USD] för alla återförsäljares försäljning.

Exempel 2

Beräkna förhållandet mellan produktförsäljning och total försäljning under det aktuella året

Anta att du vill skapa en tabell som visar procentandelen försäljning jämfört med åren för varje produktkategori (ProductCategoryName). För att få procentandelen för varje år över varje värde för ProductCategoryName måste du dela upp summan av försäljningen för det aktuella året och produktkategorin med summan av försäljningen för samma produktkategori under alla år. Med andra ord vill du behålla filtret på ProductCategoryName men ta bort filtret på året när du beräknar nämnaren för procentandelen.

Följande tabell visar resultatet när ett nytt mått, Reseller Sales Year, 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 en pivottabell och lägger till fältet ProductCategoryName i området Kolumnetiketter . Om du vill visa resultatet som procenttal använder du Excels formateringsfunktioner för att tillämpa ett procenttalsformat på cellerna som innehåller måttet Reseller Sales Year.

Radetiketter Accessoarer 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 summan av värdena i ResellerSales_USD[SalesAmount_USD] för den aktuella cellen i pivottabellen, med kontextfilter som tillämpas på kolumnerna CalendarYear och ProductCategoryName.

  2. För nämnaren tar du bort det befintliga filtret på CalendarYear med hjälp av funktionen ALL(Column). Detta beräknar summan över de återstående raderna i tabellen ResellerSales_USD efter att du har tillämpat de befintliga kontextfiltren från kolumnetiketterna. Nettoeffekten är att för nämnaren beräknas summan över det valda ProductCategoryName (det underförstådda kontextfiltret) och för alla värden i År.

Exempel 3

Beräkna bidrag från produktkategorier till total försäljning per år

Anta att du vill skapa en tabell som visar procentandelen försäljning för varje produktkategori år för år. För att få procentandelen för varje produktkategori under ett visst år måste du beräkna summan av försäljningen för den specifika produktkategorin (ProductCategoryName) år n och sedan dividera det resulterande värdet med summan av försäljningen för året n över alla produktkategorier. Med andra ord vill du behålla filtret på år men ta bort filtret på ProductCategoryName när du beräknar nämnaren för procentandelen.

Följande tabell visar resultatet när ett nytt mått, 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 och lägger till fältet ProductCategoryName i området Kolumnetiketter . Lägg sedan till det nya måttet i området Värden i pivottabellen. Om du vill visa resultatet som procenttal använder du Excels formateringsfunktioner för att tillämpa ett procenttalsformat på cellerna som innehåller det nya måttet Reseller Sales CategoryName.

Radetiketter Accessoarer 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 summan av värdena i ResellerSales_USD[SalesAmount_USD] för den aktuella cellen i pivottabellen, med kontextfilter som tillämpas på fälten CalendarYear och ProductCategoryName.

  2. För nämnaren använder du funktionen ALL(Column) för att ta bort filtret på ProductCategoryName och beräkna summan över de återstående raderna i tabellen ResellerSales_USD när du har tillämpat de befintliga kontextfiltren från radetiketterna. Nettoeffekten är att för nämnaren beräknas summan över det valda året (det underförstådda kontextfiltret) och för alla värden i ProductCategoryName.

Filterfunktioner
FUNKTIONEN ALLA
Funktionen ALLEXCEPT
FILTER-funktion