Share via


ALLE

Gjelder beregnet beregning av beregnet tabellfor beregnet kolonne

Returnerer alle radene i en tabell, eller alle verdiene i en kolonne, og ignorerer eventuelle filtre som kan ha blitt brukt. Denne funksjonen er nyttig for å fjerne filtre og opprette beregninger på alle radene i en tabell.

Syntaks

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

Parametere

Term Definisjon
tabellen Tabellen du vil fjerne filtre på.
kolonne Kolonnen du vil fjerne filtre på.

Argumentet til ALL-funksjonen må enten være en referanse til en basistabell eller en referanse til en basiskolonne. Du kan ikke bruke tabelluttrykk eller kolonneuttrykk med ALL-funksjonen.

Returverdi

Tabellen eller kolonnen med filtre fjernet.

Merknader

  • Denne funksjonen brukes ikke av seg selv, men fungerer som en mellomliggende funksjon som kan brukes til å endre resultatsettet som en annen beregning utføres over.

  • Den normale virkemåten for DAX-uttrykk som inneholder ALL()-funksjonen, er at eventuelle filtre som brukes, ignoreres. Det finnes imidlertid noen scenarioer der dette ikke er tilfelle på grunn av auto-eksisterer, en DAX-teknologi som optimaliserer filtrering for å redusere mengden behandling som kreves for visse DAX-spørringer. Et eksempel der auto-eksisterer og ALL() gir uventede resultater er når du filtrerer på to eller flere kolonner i samme tabell (som når du bruker slicere), og det finnes et mål på den samme tabellen som bruker ALL(). I dette tilfellet vil automatisk eksisterende slå sammen flere filtre til ett, og filtrerer bare på eksisterende kombinasjoner av verdier. På grunn av denne flettingen beregnes målet på eksisterende kombinasjoner av verdier, og resultatet vil være basert på filtrerte verdier i stedet for alle verdier som forventet. Hvis du vil lære mer om automatisk eksisterer og dens effekt på beregninger, kan du se Artikkelen Om Microsoft MVP Alberto Ferraris Understanding DAX Auto-Exist på sql.bi.com.

  • Tabellen nedenfor beskriver hvordan du kan bruke ALLE- og ALLEXCEPT-funksjonene i ulike scenarioer.

    Funksjon og bruk Bekrivelse
    ALL() Fjerner alle filtre overalt. ALL() kan bare brukes til å fjerne filtre, men ikke for å returnere en tabell.
    ALL(Table) Fjerner alle filtre fra den angitte tabellen. I praksis returnerer ALL(Tabell) alle verdiene i tabellen, og fjerner eventuelle filtre fra konteksten som ellers kan ha blitt brukt. Denne funksjonen er nyttig når du arbeider med mange grupperingsnivåer, og vil opprette en beregning som oppretter et forhold mellom en aggregert verdi og totalverdien. Det første eksemplet viser dette scenarioet.
    ALL (Column[, Column[, ...]]) Fjerner alle filtre fra de angitte kolonnene i tabellen. Alle andre filtre på andre kolonner i tabellen gjelder fortsatt. Alle kolonneargumenter må komme fra samme tabell. ALL(Kolonne)-varianten er nyttig når du vil fjerne kontekstfiltrene for én eller flere spesifikke kolonner og beholde alle andre kontekstfiltre. De andre og tredje eksemplene viser dette scenarioet.
    ALLEXCEPT(Tabell, Kolonne1 [,Kolonne2]...) Fjerner alle kontekstfiltre i tabellen, bortsett fra filtre som brukes på de angitte kolonnene. Dette er en praktisk snarvei for situasjoner der du vil fjerne filtrene på mange, men ikke alle, kolonner i en tabell.
  • Denne funksjonen støttes ikke for bruk i DirectQuery-modus når den brukes i beregnede kolonner eller regler for sikkerhet på radnivå (RLS).

Eksempel 1

Beregn forholdet mellom kategorisalg og totalt salg

Anta at du vil finne salgsbeløpet for gjeldende celle, i pivottabellen, dividert med det totale salget for alle forhandlere. Hvis du vil sikre at nevneren er den samme uavhengig av hvordan pivottabellbrukeren kan filtrere eller gruppere dataene, definerer du en formel som bruker ALL til å opprette riktig totalsum.

Tabellen nedenfor viser resultatene når et nytt mål, All Reseller Sales Ratio, opprettes ved hjelp av formelen som vises i kodedelen. Hvis du vil se hvordan dette fungerer, legger du til feltet CalendarYear i radetikettområdet i pivottabellen, og legger til feltet ProductCategoryName i kolonneetikettområdet . Deretter drar du målet, All Reseller Sales Ratio, til Verdier-området i pivottabellen. Hvis du vil vise resultatene som prosentdeler, bruker du formateringsfunksjonene i Excel til å bruke en prosenttallformatering på cellene som inneholder målet.

Radetiketter Tilbehør Sykler Klær Komponenter Grand Total
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%
Grand Total 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])  

Formelen er konstruert på følgende måte:

  1. Telleren, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), er summen av verdiene i ResellerSales_USD[SalesAmount_USD] for gjeldende celle i pivottabellen, med kontekstfiltre brukt på CalendarYear og ProductCategoryName.

  2. For nevneren begynner du med å angi en tabell, ResellerSales_USD og bruke ALL-funksjonen til å fjerne alle kontekstfiltre i tabellen.

  3. Deretter bruker du SUMMERX-funksjonen til å summere verdiene i kolonnen ResellerSales_USD[SalesAmount_USD]. Med andre ord får du summen av ResellerSales_USD[SalesAmount_USD] for alle forhandlersalg.

Eksempel 2

Beregn forholdet mellom produktsalg og totalt salg gjennom gjeldende år

Anta at du vil opprette en tabell som viser prosentdelen av salget sammenlignet med årene for hver produktkategori (ProductCategoryName). Hvis du vil hente prosentandelen for hvert år over hver verdi av ProductCategoryName, må du dele salgssummen for det bestemte året og produktkategorien etter salgssummen for samme produktkategori gjennom alle år. Du vil med andre ord beholde filteret på ProductCategoryName, men fjerne filteret på året ved beregning av nevneren for prosentdelen.

Tabellen nedenfor viser resultatene når et nytt mål, Forhandlersalgsår, opprettes ved hjelp av formelen som vises i kodedelen. Hvis du vil se hvordan dette fungerer, legger du til feltet CalendarYear i radetikettområdet i en pivottabell, og legger til feltet ProductCategoryName i kolonneetikettområdet . Hvis du vil vise resultatene som prosentdeler, bruker du Excels formateringsfunksjoner til å bruke et prosenttallformat på cellene som inneholder målet, Forhandlersalgsår.

Radetiketter Tilbehør Sykler Klær Komponenter Grand Total
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%
Grand Total 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]))  

Formelen er konstruert på følgende måte:

  1. Telleren, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), er summen av verdiene i ResellerSales_USD[SalesAmount_USD] for gjeldende celle i pivottabellen, med kontekstfiltre brukt på kolonnene CalendarYear og ProductCategoryName.

  2. For nevneren fjerner du det eksisterende filteret på CalendarYear ved hjelp av ALL(Column)-funksjonen. Dette beregner summen over de gjenværende radene i ResellerSales_USD tabellen, etter at du har brukt de eksisterende kontekstfiltrene fra kolonneetikettene. Nettoeffekten er at for nevneren beregnes summen over det valgte ProductCategoryName (det underforståtte kontekstfilteret) og for alle verdier i År.

Eksempel 3

Beregn bidrag fra produktkategorier til totalt salg per år

Anta at du vil opprette en tabell som viser prosentdelen av salget for hver produktkategori, fra år til år. Hvis du vil hente prosentandelen for hver produktkategori i et bestemt år, må du beregne salgssummen for den bestemte produktkategorien (ProductCategoryName) i år n, og deretter dele den resulterende verdien med summen av salget for året n over alle produktkategorier. Du vil med andre ord beholde filteret på år, men fjerne filteret på ProductCategoryName når du beregner nevneren for prosentdelen.

Tabellen nedenfor viser resultatene når et nytt mål, Reseller Sales CategoryName, opprettes ved hjelp av formelen som vises i kodedelen. Hvis du vil se hvordan dette fungerer, legger du til feltet CalendarYear i radetikettområdet i pivottabellen, og legger til feltet ProductCategoryName i kolonneetikettområdet . Legg deretter til det nye målet i Verdier-området i pivottabellen. Hvis du vil vise resultatene som prosentdeler, bruker du Excels formateringsfunksjoner til å bruke et prosenttallformat på cellene som inneholder det nye målet, Reseller Sales CategoryName.

Radetiketter Tilbehør Sykler Klær Komponenter Grand Total
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 %
Grand Total 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]))  

Formelen er konstruert på følgende måte:

  1. Telleren, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), er summen av verdiene i ResellerSales_USD[SalesAmount_USD] for gjeldende celle i pivottabellen, med kontekstfiltre brukt på feltene CalendarYear og ProductCategoryName.

  2. For nevneren bruker du funksjonen ALL(Column) til å fjerne filteret på ProductCategoryName og beregne summen over de gjenværende radene i ResellerSales_USD tabellen, etter at du har brukt de eksisterende kontekstfiltrene fra radetikettene. Nettoeffekten er at for nevneren beregnes summen over det valgte året (det underforståtte kontekstfilteret) og for alle verdiene i ProductCategoryName.

Filterfunksjoner
ALL (funksjon)
ALLEXCEPT (funksjon)
FILTER (funksjon)