Filtrere data i DAX-formler

Viktig: Denne artikkelen er maskinoversatt, se ansvarsfraskrivelsen. Du finner den engelske versjonen av artikkelen her som referanse.

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

I denne artikkelen

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

Filtre som fjerner duplikater

Hvordan kontekst påvirker filtre

Fjerne filtre

Overstyre alle filtre med ALL-funksjonen

Overstyre bestemte filtre med ALLEXCEPT-funksjonen

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

Du kan bruke filtre i formler som bruker 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 bruk i operasjoner, for eksempel egendefinerte aggregasjoner.

La oss si at du for eksempel har en tabell med data som inneholder ordreinformasjon om forhandlere, og du vil beregne hvor mye hver forhandler har solgt. Du vil imidlertid bare vise salgsbeløpet for forhandlerne som solgte flere enheter av produktene med høy verdi. Formelen nedenfor, som er basert på eksempelarbeidsboken for DAX, viser ett eksempel på hvordan du kan opprette denne beregningen ved å bruke et filter:

= SUMX (
FILTER (ResellerSales_USD, ResellerSales_USD [Antall] > 5 & &
ResellerSales_USD [ProductStandardCost_USD] > 100),
ResellerSales_USD [SalesAmt]
)

  • Den første delen av formelen angir ett av aggregeringsfunksjoner Power Pivot, som en tabell som et argument. SUMX beregner en sum i en tabell.

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

    Filter-uttrykket har to deler: den første delen navn tabellen som gjelder for filteret. Den andre delen definerer et uttrykk som skal brukes som filterbetingelse. I dette tilfellet filtrerer du på forhandlere som solgte mer enn 5 enheter og produkter som koster mer enn $100. Operatoren, & &, er en logisk og operator, som angir at begge deler av betingelsen må være sann for raden skal tilhøre filtrerte delsett.

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

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

    Merknad: Filter-uttrykket er berørt av konteksten der det er brukt. Hvis du bruker et filter i et mål, og mål som skal brukes i en pivottabell eller et pivotdiagram, kan for eksempel delsettet med data som returneres påvirkes 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 for å finne 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 i andre operasjoner. DAX har to funksjoner for å returnere distinkte verdier: DISTINCT-funksjonen og VALUES-funksjonen.

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

  • VALUES-funksjonen returnerer også en liste over unike verdier, men returnerer også det ukjente medlemmet. Dette er nyttig når du bruker verdier fra to tabeller som settes sammen med en relasjon, og en verdi er manglende 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 å hente en liste over verdier som deretter sendes til en annen funksjon. Du kan for eksempel bruke følgende formel til å hente en liste over distinkte produkter som er solgt av en bestemt forhandler, ved å bruke den unike produktnøkkelen, og deretter telle produktene i denne listen ved å bruke COUNTROWS-funksjonen:

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

Til toppen av siden

Hvordan kontekst påvirker filtre

Når du legger en DAX-formel i en pivottabell eller et pivotdiagram, kan resultatet av formelen påvirkes av konteksten. Hvis du arbeider i en tabell for Power Pivot, er konteksten gjeldende rad og dens verdier. Hvis du arbeider i en pivottabell eller et pivotdiagram, betyr konteksten settet eller delsettet med data som er definert av operasjoner som Oppstykking eller filtrering. Utformingen av pivottabell- eller pivotdiagramrapport setter også sin egen kontekst. Hvis du oppretter en pivottabell som grupperer salg etter område og år, vises for eksempel bare dataene som gjelder for disse områdene og år i pivottabellen. Derfor beregnes mål som du legger til pivottabellen i sammenheng med kolonne- og radoverskrifter i tillegg til eventuelle filtre i mål-formelen.

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 hvilke filtre som er brukt, eller endre filterdelen i formelen. DAX har flere funksjoner som gjør det mulig å fjerne filtre og bestemme hvilke kolonner som skal beholdes som en del av gjeldende filterkontekst. Denne delen inneholder en oversikt over hvordan disse funksjonene påvirker resultatet av en formel.

Overstyre alle filtre med ALL-funksjonen

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

Merknad: Hvis du er fortrolig med terminologien for relasjonsdatabaser, kan du se på ALL som den funksjonen som genererer den naturlige venstre ytre koblingen for alle tabellene.

Tenk deg at du har tabellene Sales og Products, og at du vil opprette en formel som beregner salgssummen for gjeldende produkt dividert med salget for alle produkter. Du må ta hensyn til det faktum at hvis formelen brukes i et mål, kan det hende at brukeren av pivottabellen bruker en slicer til å filtrere etter et bestemt produkt, med produktnavnet i radene. Du må derfor legge til ALL-funksjonen for å overstyre eventuelle filtre, slik at du får den virkelige nevnerverdien, uansett filtre eller slicere. Formelen nedenfor er ett eksempel på hvordan du kan bruke ALL til å overstyre effektene av tidligere filtre:

= SUMMER (salg [Amount]) / SUMX (Sales [Amount]-FILTER (salg, ALL(Products)))

  • Den første delen av formelen, SUM (Sales[Amount]), beregner telleren.

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

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

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 beholdes. Kolonnene du bruker som argumenter til ALLEXCEPT-funksjonen, angir hvilke kolonner som fortsatt vil være filtrert. Hvis du vil overstyre filtre fra de fleste kolonnene, men ikke alle, er det mer praktisk å bruke ALLEXCEPT i stedet for ALL. ALLEXCEPT-funksjonen er spesielt nyttig når du oppretter pivottabeller som kan være filtrert 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

Merknad: Ansvarsfraskrivelse for maskinoversettelse: Denne artikkelen er oversatt av et datasystem i stedet for en oversetter. Microsoft tilbyr disse maskinoversettelsene slik at brukere som ikke snakker engelsk, får tilgang til innhold om Microsoft-produkter, -tjenester og –teknologier. Ettersom artikkelen er maskinoversatt, kan den inneholde feil i vokabular, syntaks eller grammatikk.

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

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×