Læs på engelsk

Del via


AL

Gælder for: Beregning af målingsvisualisering for beregnet kolonne i beregnet tabel

Returnerer alle rækkerne i en tabel eller alle værdierne i en kolonne og ignorerer eventuelle filtre, der kan være anvendt. Denne funktion er nyttig til at rydde filtre og oprette beregninger for alle rækkerne i en tabel.

Syntaks

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

Parametre

Begreb Definition
table Den tabel, du vil rydde filtre for.
kolonne Den kolonne, du vil rydde filtre for.

Argumentet til funktionen ALL skal enten være en reference til en basistabel eller en reference til en basiskolonne. Du kan ikke bruge tabeludtryk eller kolonneudtryk sammen med funktionen ALL.

Returværdi

Den tabel eller kolonne, hvor filtrene er fjernet.

Bemærkninger

  • Denne funktion bruges ikke af sig selv, men fungerer som en mellemliggende funktion, der kan bruges til at ændre det resultatsæt, som en anden beregning udføres for.

  • Den normale funktionsmåde for DAX-udtryk, der indeholder funktionen ALL(), er, at eventuelle anvendte filtre ignoreres. Der er dog nogle scenarier, hvor dette ikke er tilfældet på grund af auto-exist, en DAX-teknologi, der optimerer filtrering for at reducere den mængde behandling, der kræves for visse DAX-forespørgsler. Et eksempel, hvor auto-exist og ALL() giver uventede resultater, er, når der filtreres på to eller flere kolonner i den samme tabel (f.eks. når der bruges udsnit), og der er en måling i den samme tabel, der bruger ALL(). I dette tilfælde fletter automatisk eksisterende flere filtre til ét og filtrerer kun på eksisterende kombinationer af værdier. På grund af denne fletning beregnes målingen på de eksisterende kombinationer af værdier, og resultatet baseres på filtrerede værdier i stedet for alle værdier som forventet. Hvis du vil vide mere om auto-exist og dens effekt på beregninger, skal du se Microsoft MVP Alberto Ferrari's Understanding DAX Auto-Exist artikel om sql.bi.com.

  • I følgende tabel beskrives det, hvordan du kan bruge funktionerne ALL og ALLEXCEPT i forskellige scenarier.

    Funktion og brug Beskrivelse
    ALL() Fjerner alle filtre overalt. ALL() kan kun bruges til at rydde filtre, men ikke til at returnere en tabel.
    ALL(Table) Fjerner alle filtre fra den angivne tabel. All(Table) returnerer reelt alle værdierne i tabellen og fjerner eventuelle filtre fra konteksten, der ellers kunne være anvendt. Denne funktion er nyttig, når du arbejder med mange grupperingsniveauer, og du vil oprette en beregning, der opretter et forhold mellem en aggregeret værdi og den samlede værdi. Det første eksempel viser dette scenarie.
    ALL (Column[, Column[, ...]]) Fjerner alle filtre fra de angivne kolonner i tabellen. alle andre filtre på andre kolonner i tabellen gælder stadig. Alle kolonneargumenter skal komme fra den samme tabel. Varianten ALL(Column) er nyttig, når du vil fjerne kontekstfiltrene for en eller flere specifikke kolonner og bevare alle andre kontekstfiltre. Det andet og tredje eksempel viser dette scenarie.
    ALLEXCEPT(Table, Column1 [,Column2]...) Fjerner alle kontekstfiltre i tabellen undtagen filtre, der anvendes på de angivne kolonner. Dette er en praktisk genvej til situationer, hvor du vil fjerne filtrene på mange, men ikke alle kolonner i en tabel.
  • Denne funktion understøttes ikke til brug i DirectQuery-tilstand, når den bruges i beregnede kolonner eller RLS-regler (row-level security).

Eksempel 1

Beregn forholdet mellem Kategorisalg og Samlet salg

Antag, at du vil finde salgsmængden for den aktuelle celle i pivottabellen divideret med det samlede salg for alle forhandlere. Hvis du vil sikre dig, at nævneren er den samme, uanset hvordan pivottabelbrugeren filtrerer eller grupperer dataene, skal du definere en formel, der bruger ALL til at oprette den korrekte hovedtotal.

I følgende tabel vises resultaterne, når der oprettes en ny måling All Reseller Sales Ratio ved hjælp af den formel, der vises i kodeafsnittet. Hvis du vil se, hvordan dette fungerer, skal du føje feltet CalendarYear til området Rækkenavne i pivottabellen og føje feltet ProductCategoryName til området Kolonnenavne . Træk derefter målingen All Reseller Sales Ratio til området Værdier i pivottabellen. Hvis du vil have vist resultaterne som procenter, skal du bruge formateringsfunktionerne i Excel til at anvende en formatering af procenttal på de celler, der indeholder målingen.

Rækkenavne Accessories Cykler Tøj Komponenter Samlet 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%
Samlet 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])  

Formlen er konstrueret på følgende måde:

  1. Tælleren SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])er summen af værdierne i ResellerSales_USD[SalesAmount_USD] for den aktuelle celle i pivottabellen med kontekstfiltre anvendt på CalendarYear og ProductCategoryName.

  2. For nævneren starter du med at angive en tabel, ResellerSales_USD og bruger funktionen ALL til at fjerne alle kontekstfiltre i tabellen.

  3. Du kan derefter bruge funktionen SUMX til at opsummere værdierne i kolonnen ResellerSales_USD[SalesAmount_USD]. Med andre ord får du summen af ResellerSales_USD[SalesAmount_USD] for alle forhandleres salg.

Eksempel 2

Beregn forholdet mellem produktsalg og samlet salg til det aktuelle år

Antag, at du vil oprette en tabel, der viser procentdelen af salg sammenlignet med årene for hver produktkategori (ProductCategoryName). Hvis du vil have procentdelen for hvert år i forhold til hver værdi i ProductCategoryName, skal du dividere summen af salget for det pågældende år og den pågældende produktkategori med summen af salget for den samme produktkategori for alle år. Du vil med andre ord bevare filteret på ProductCategoryName, men fjerne filteret for året, når du beregner nævneren for procentdelen.

I følgende tabel vises resultaterne, når der oprettes en ny måling Reseller Sales Year ved hjælp af den formel, der vises i kodeafsnittet. Hvis du vil se, hvordan dette fungerer, skal du føje feltet CalendarYear til området Rækkenavne i en pivottabel og føje feltet ProductCategoryName til området Kolonnenavne . Hvis du vil have vist resultaterne som procenter, skal du bruge Excels formateringsfunktioner til at anvende et procenttalsformat på de celler, der indeholder målingen Reseller Sales Year.

Rækkenavne Accessories Cykler Tøj Komponenter Samlet 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%
Samlet 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]))  

Formlen er konstrueret på følgende måde:

  1. Tælleren SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])er summen af værdierne i ResellerSales_USD[SalesAmount_USD] for den aktuelle celle i pivottabellen med kontekstfiltre anvendt på kolonnerne CalendarYear og ProductCategoryName.

  2. For nævneren fjerner du det eksisterende filter for CalendarYear ved hjælp af funktionen ALL(Column). Dette beregner summen af de resterende rækker i tabellen ResellerSales_USD efter anvendelse af de eksisterende kontekstfiltre fra kolonnenavnene. Nettoeffekten er, at for nævneren beregnes summen over det valgte ProductCategoryName (det implicitte kontekstfilter) og for alle værdier i Year.

Eksempel 3

Beregn produktkategoriers bidrag til samlet salg pr. år

Antag, at du vil oprette en tabel, der viser procentdelen af salget for hver produktkategori år for år. Hvis du vil have procentdelen for hver produktkategori i et bestemt år, skal du beregne summen af salget for den pågældende produktkategori (ProductCategoryName) i år n og derefter dividere den resulterende værdi med summen af salget for året n for alle produktkategorier. Du vil med andre ord beholde filteret på år, men fjerne filteret på ProductCategoryName, når du beregner nævneren for procentdelen.

I følgende tabel vises resultaterne, når der oprettes en ny måling Reseller Sales CategoryName ved hjælp af den formel, der vises i kodeafsnittet. Hvis du vil se, hvordan dette fungerer, skal du føje feltet CalendarYear til området Rækkenavne i pivottabellen og føje feltet ProductCategoryName til området Kolonnenavne . Føj derefter den nye måling til området Værdier i pivottabellen. Hvis du vil have vist resultaterne som procenter, skal du bruge Excels formateringsfunktioner til at anvende et procenttalsformat på de celler, der indeholder den nye måling Reseller Sales CategoryName.

Rækkenavne Accessories Cykler Tøj Komponenter Samlet 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 %
Samlet 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]))  

Formlen er konstrueret på følgende måde:

  1. Tælleren er SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])summen af værdierne i ResellerSales_USD[SalesAmount_USD] for den aktuelle celle i pivottabellen med kontekstfiltre anvendt på felterne CalendarYear og ProductCategoryName.

  2. For nævneren skal du bruge funktionen ALL(Column) til at fjerne filteret på ProductCategoryName og beregne summen af de resterende rækker i tabellen ResellerSales_USD, når du har anvendt de eksisterende kontekstfiltre fra rækkenavnene. Nettoeffekten er, at for nævneren beregnes summen for det valgte År (det implicitte kontekstfilter) og for alle værdier i ProductCategoryName.

Filterfunktioner
Funktionen ALL
Funktionen ALLEXCEPT
Funktionen FILTER