Denne delen beskriver hvordan du oppretter filtre i DAX-formler (Data Analysis Expressions). Du kan opprette filtre i formler for å begrense verdiene fra kildedataene som brukes i beregninger. Du gjør dette ved å angi en tabell som en inndata til formelen, og deretter definere et filteruttrykk. Filteruttrykket du angir, brukes til å spørre dataene og returnere bare et delsett av kildedataene. Filteret brukes dynamisk hver gang du oppdaterer resultatene av formelen, avhengig av gjeldende kontekst for dataene.

I denne artikkelen

Opprette et filter på en tabell som brukes i en formel

Du kan bruke filtre i formler som tar en tabell som inndata. I stedet for å skrive inn et tabellnavn, bruker du FILTER-funksjonen til å definere et delsett med rader fra den angitte tabellen. Dette delsettet sendes deretter til en annen funksjon, for operasjoner som egendefinerte aggregasjoner.

Anta for eksempel at du har en tabell med data som inneholder ordreinformasjon om forhandlere, og du vil beregne hvor mye hver forhandler som selges. Du vil imidlertid vise salgsbeløpet bare for de forhandlerne som solgte flere enheter av produktene med høyere verdi. Følgende formel, basert på DAX-eksempelarbeidsboken, viser ett eksempel på hvordan du kan opprette denne beregningen ved hjelp av et filter:

=SUMMERX(
     FILTER ('ResellerSales_USD', 'ResellerSales_USD'[Quantity] > 5 &&
     'ResellerSales_USD'[ProductStandardCost_USD] > 100),
     'ResellerSales_USD'[SalesAmt]
     )

  • Den første delen av formelen angir en av Power Pivot aggregeringsfunksjonene, som tar en tabell som et argument. SUMMERX beregner en sum over en tabell.

  • Den andre delen av formelen, FILTER(table, expression),forteller SUMX hvilke data som skal brukes. SUMX krever en tabell eller et uttrykk som resulterer i en tabell. I stedet for å bruke alle dataene i en tabell, bruker du funksjonen FILTER til å angi hvilke av radene fra tabellen som skal brukes.

    Filteruttrykket har to deler: Den første delen gir navn til tabellen som filteret gjelder for. Den andre delen definerer et uttrykk som skal brukes som filterbetingelse. I dette tilfellet filtrerer du på forhandlere som har solgt mer enn fem enheter og produkter som koster mer enn KR 100. Operatoren, &&, er en logisk OG-operator, som angir at begge delene av betingelsen må være sann for at raden skal tilhøre det filtrerte delsettet.

  • Den tredje delen av formelen forteller SUMX hvilke verdier som skal summeres. I dette tilfellet bruker du bare salgsbeløpet.

    Vær oppmerksom på at funksjoner som FILTER, som returnerer en tabell, aldri returnerer tabellen eller radene direkte, men alltid bygges inn i en annen funksjon. Hvis du vil ha mer informasjon om FILTRER og andre funksjoner som brukes til filtrering, inkludert flere eksempler, kan du se Filterfunksjoner (DAX).

    Obs!: Filteruttrykket påvirkes av konteksten det brukes i. Hvis du for eksempel bruker et filter i et mål, og målet brukes i en pivottabell eller PivotChart, kan delsettet med data som returneres, bli påvirket av flere filtre eller slicere som brukeren har brukt i pivottabellen. Hvis du vil ha mer informasjon om kontekst, kan du se Kontekst i DAX-formler.

Filtre som fjerner duplikater

I tillegg til å filtrere etter bestemte verdier, kan du returnere et unikt sett med verdier fra en annen tabell eller kolonne. Dette kan være nyttig når du vil telle antall unike verdier i en kolonne, eller bruke en liste over unike verdier for andre operasjoner. DAX har to funksjoner for å returnere distinkte verdier: DISTINCT-funksjonen og VERDIER-funksjonen.

  • DISTINCT-funksjonen undersøker en enkelt kolonne som du angir som et argument for funksjonen, og returnerer en ny kolonne som bare inneholder de distinkte verdiene.

  • VERDIER-funksjonen returnerer også en liste over unike verdier, men returnerer også ukjent medlem. Dette er nyttig når du bruker verdier fra to tabeller som er sammenføyd med en relasjon, og en verdi mangler i én tabell og finnes i den andre. Hvis du vil ha mer informasjon om det ukjente medlemmet, kan du se Kontekst i DAX-formler.

Begge disse funksjonene returnerer en hel kolonne med verdier. Derfor bruker du funksjonene til å få en liste over verdier som deretter sendes til en annen funksjon. Du kan for eksempel bruke følgende formel til å få en liste over de distinkte produktene som selges av en bestemt forhandler, ved hjelp av den unike produktnøkkelen, og deretter telle produktene i denne listen ved hjelp av ANTALLANTALL-funksjonen:

=COUNTROWS(DISTINCT('ResellerSales_USD'[ProductKey]))

Til toppen av siden

Hvordan kontekst påvirker filtre

Når du legger til en DAX-formel i en pivottabell eller PivotChart, kan resultatet av formelen bli påvirket av konteksten. Hvis du arbeider i en Power Pivot tabell, er konteksten gjeldende rad og tilhørende verdier. Hvis du arbeider i en pivottabell eller PivotChart, betyr konteksten settet eller delsettet med data som er definert av operasjoner som slicing eller filtrering. Utformingen av pivottabellen eller PivotChart også en egen kontekst. Hvis du for eksempel oppretter en pivottabell som grupperer salg etter område og år, vises bare dataene som gjelder for disse områdene og årene, i pivottabellen. Derfor beregnes eventuelle mål som du legger til i pivottabellen, i sammenheng med kolonne- og radoverskriftene samt eventuelle filtre i målformelen.

Hvis du vil ha mer informasjon, kan du se Kontekst i DAX-formler.

Til toppen av siden

Fjerne filtre

Når du arbeider med komplekse formler, vil du kanskje vite nøyaktig hva de gjeldende filtrene er, eller du vil kanskje endre filterdelen av formelen. DAX inneholder flere funksjoner som gjør det mulig å fjerne filtre og kontrollere hvilke kolonner som beholdes som en del av gjeldende filterkontekst. Denne delen gir en oversikt over hvordan disse funksjonene påvirker resultatene i en formel.

Overstyre alle filtre med ALL-funksjonen

Du kan bruke ALL -funksjonen til å overstyre eventuelle filtre som tidligere ble brukt, og returnere alle radene i tabellen til funksjonen som utfører aggregat eller annen operasjon. Hvis du bruker én eller flere kolonner, i stedet for en tabell, som argumenter ALL, returnerer ALL alle rader, og ignorerer eventuelle kontekstfiltre.

Obs!: Hvis du er kjent med terminologien for relasjonsdatabaser, kan du tenke på ALL som å generere den naturlige venstre ytre sammenføyingen av alle tabellene.

Anta for eksempel at du har tabellene Salg og Produkter, og at du vil opprette en formel som beregner summen av salg for det gjeldende produktet delt på salg for alle produkter. Du må ta hensyn til at hvis formelen brukes i et mål, kan brukeren av pivottabellen bruke en slicer til å filtrere etter et bestemt produkt, med produktnavnet på radene. Hvis du vil ha den sanne verdien av nevneren uavhengig av filtre eller slicere, må du derfor legge til ALL-funksjonen for å overstyre eventuelle filtre. Følgende formel er ett eksempel på hvordan du bruker ALLE til å overstyre effekten av tidligere filtre:

=SUMMER (Salg[Beløp])/SUMMERX(Salg[Beløp], FILTER(Salg, ALLE(produkter)))

  • Den første delen av formelen, SUMMER (Salg[Beløp]), beregner telleren.

  • Summen tar hensyn til gjeldende kontekst, noe som betyr at hvis du legger til formelen i en beregnet kolonne, brukes radkonteksten, og hvis du legger til formelen i en pivottabell som et mål, brukes eventuelle filtre som brukes i pivottabellen (filterkonteksten).

  • Den andre delen av formelen beregner nevneren. ALL-funksjonen overstyrer eventuelle filtre som kan brukes på Products tabellen.

Hvis du vil ha mer informasjon, inkludert detaljerte eksempler, kan du se ALL-funksjonen.

Overstyre bestemte filtre med ALLEXCEPT-funksjonen

ALLEXCEPT-funksjonen overstyrer også eksisterende filtre, men du kan angi at noen av de eksisterende filtrene skal bevares. Kolonnene du gir navn til som argumenter til ALLEXCEPT-funksjonen, angir hvilke kolonner som fortsatt skal filtreres. Hvis du vil overstyre filtre fra de fleste kolonner, men ikke alle, er ALLEXCEPT mer praktisk enn ALLE. ALLEXCEPT-funksjonen er spesielt nyttig når du oppretter pivottabeller som kan filtreres på mange forskjellige kolonner, og du vil kontrollere verdiene som brukes i formelen. Hvis du vil ha mer informasjon, inkludert et detaljert eksempel på hvordan du bruker ALLEXCEPT i en pivottabell, kan du se ALLEXCEPT-funksjonen.

Til toppen av siden

Trenger du mer hjelp?

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Microsoft Office Insider-deltakere

Var denne informasjonen nyttig?

Hvor fornøyd er du med språkkvaliteten?
Hva påvirket opplevelsen din?

Takk for tilbakemeldingen!

×