Del via


ALL

gælder for:beregnet kolonneberegnet tabelMeasurevisualiseringsberegning

Returnerer all rækkerne i en tabel orallvalues i en kolonne og ignorerer eventuelle filters, der kan være anvendt. Denne funktion er nyttig til at rydde filtersand oprette beregninger på all rækkerne i en tabel.

Syntaks

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

Parametre

Udtryk Definition
table Den tabel, du vil rydde filters på.
column Den kolonne, du vil rydde filters på.

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

Returner value

Tabellen or kolonne, hvor filters er fjernet.

Bemærkninger

  • Denne funktion bruges not 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 alle anvendte filters ignoreres. Der er dog nogle scenarier, hvor dette er not tilfældet på grund af auto-exist, en DAX teknologi, der optimerer filtreringen for at reducere den mængde behandling, der kræves for visse DAX forespørgsler. Et eksempel, hvor auto-exist andALL() giver uventede resultater, er, når der filtreres efter to or flere kolonner i den samme tabel (f.eks. når du bruger udsnit), and der er en measure i den samme tabel, der bruger ALL(). I dette tilfælde flettes automatisk eksisterende flere filters til én and kun filter på eksisterende kombinationer af values. På grund af denne fletning beregnes measure på de eksisterende kombinationer af valuesand resultatet baseres på filtrerede values i stedet for allvalues som forventet. Hvis du vil vide mere om auto-exist and dens effect om beregninger, skal du se microsoft MVP Alberto Ferraris Understanding DAX Auto-Exist artikel om sql.bi.com.

  • I følgende tabel beskrives det, hvordan du kan bruge ALLandALLEXCEPT-funktionerne i forskellige scenarier.

    Brug af funktion and Beskrivelse
    ALL() Fjerner allfilters overalt. ALL() kan kun bruges til at rydde filters, men not til at returnere en tabel.
    ALL(tabel) Fjerner allfilters fra den angivne tabel. I effectreturnerer ALL(Table) all af values i tabellen og fjerner alle filters fra konteksten, der ellers kunne være blevet anvendt. Denne funktion er nyttig, når du arbejder med mange grupperingsniveauer, and vil oprette en beregning, der opretter et forhold mellem et aggregeret value og det samlede value. Det first eksempel viser dette scenarie.
    ALL (Kolonne[, Kolonne[, ...]]) Fjerner allfilters fra de angivne kolonner i tabellen. all andre filters på andre kolonner i tabellen gælder stadig. All kolonneargumenter skal komme fra den samme tabel. Varianten ALL(Kolonne) er nyttig, når du vil fjerne kontekst filters for én or mere specifikke kolonner and for at bevare all anden kontekst filters. De secondand tredje eksempler viser dette scenarie.
    ALLEXCEPT(Tabel, Kolonne1 [,Kolonne2]...) Fjerner all kontekst filters i tabellen exceptfilters, der anvendes på de angivne kolonner. Dette er en praktisk genvej til situationer, hvor du vil fjerne filters på mange, men notall, kolonner i en tabel.
  • Denne funktion understøttes not til brug i DirectQuery-tilstand, når den bruges i beregnede kolonner or RLS-regler (row-level security).

Eksempel 1

Calculate forhold mellem Kategorisalg og Samlet salg

Antag, at du vil find salgsmængden for den aktuelle celle i pivottabellen divideret med det samlede salg for all forhandlere. Hvis du vil sikre dig, at nævneren er den samme, uanset hvordan pivottabelbrugeren filtrerer or gruppering af dataene, define du en formel, der bruger ALL til at oprette den korrekte hovedtotal.

I følgende tabel vises resultaterne, når der oprettes en ny measure, All Reseller Sales Ratioved 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 område i pivottabellen and føje feltet ProductCategoryName til området kolonnenavne område. Træk derefter measureAll Reseller Sales Ratiotil området Values 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 containsmeasure.

Rækkenavne Tilbehør Cykler Tøj Komponenter Hovedtotal
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%
Hovedtotal 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 sum af values i ResellerSales_USD[SalesAmount_USD] for den aktuelle celle i pivottabellen, hvor konteksten filters anvendt på CalendarYear and ProductCategoryName.

  2. I forbindelse med nævneren skal du starte med at angive en tabel, ResellerSales_USD, and bruge funktionen ALL til at fjerne all kontekst filters i tabellen.

  3. Du kan derefter bruge funktionen SUMX til at sumvalues i kolonnen ResellerSales_USD[SalesAmount_USD]. Du får med andre ord sum af ResellerSales_USD[SalesAmount_USD] for all forhandleres salg.

Eksempel 2

Calculate forhold mellem Product salg og samlet salg til aktuelle Year

Antag, at du vil oprette en tabel, der viser procentdelen af salg sammenlignet med årene for hver product kategori (ProductCategoryName). Hvis du vil have procentdelen for hver year for hver value af ProductCategoryName, skal du dividesum af salget for den pågældende yearandproduct kategori efter sum af salget for den samme product kategori over all år. Du vil med andre ord beholde filter på ProductCategoryName, men fjerne filter på year, når du beregner nævneren for procentdelen.

I følgende tabel vises resultaterne, når der oprettes en ny measure, Reseller Sales Yearved 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 område i en pivottabel and 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 procenttal format på de celler, der indeholder measure, Reseller Sales Year.

Rækkenavne Tilbehør Cykler Tøj Komponenter Hovedtotal
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%
Hovedtotal 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 sum af values i ResellerSales_USD[SalesAmount_USD] for den aktuelle celle i pivottabellen, hvor konteksten filters anvendt på kolonnerne CalendarYear and ProductCategoryName.

  2. For nævneren fjerner du den eksisterende filter i CalendarYear ved hjælp af funktionen ALL(Column). Dette beregner sum over de resterende rækker i den ResellerSales_USD tabel, når den eksisterende kontekst er anvendt filters fra kolonnenavnene. Netto-effect er, at for nævneren beregnes sum over det valgte ProductCategoryName (den implicitte kontekst filter) and for allvalues i Year.

Eksempel 3

Calculate Product kategoriers bidrag til samlet salg pr. Year

Antag, at du vil oprette en tabel, der viser procentdelen af salg for hver product kategori på year-efter-year basis. Hvis du vil have procentdelen for hver product kategori i en bestemt year, skal du calculatesum af salget for den pågældende product kategori (ProductCategoryName) i year n, and derefter divide den resulterende value af sum af salg for de year n over allproduct kategorier. Du vil med andre ord beholde filter på year men fjerne filter på ProductCategoryName, når du beregner nævneren for procentdelen.

I følgende tabel vises resultaterne, når der oprettes en ny measureReseller Sales CategoryNameved 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 and føje feltet ProductCategoryName til området Kolonnenavne. Føj derefter den nye measure til området Values i pivottabellen. Hvis du vil have vist resultaterne som procenter, skal du bruge Excels formateringsfunktioner til at anvende et procenttal format på de celler, der indeholder den nye measure, Reseller Sales CategoryName.

Rækkenavne Tilbehør Cykler Tøj Komponenter Hovedtotal
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%
Hovedtotal 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 SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])er sum af values i ResellerSales_USD[SalesAmount_USD] for den aktuelle celle i pivottabellen, hvor konteksten filters anvendt på felterne CalendarYear and ProductCategoryName.

  2. For nævneren skal du bruge funktionen ALL(Column) til at fjerne filter på ProductCategoryName andcalculatesum over de resterende rækker i tabellen ResellerSales_USD, når du har anvendt den eksisterende kontekst filters fra rækkenavnene. Netto-effect er, at for nævneren beregnes sum for det valgte Year (den implicitte kontekst filter) and for allvalues af ProductCategoryName.

Filter funktionerALL funktionALLEXCEPT funktionFILTER funktion