Filtrere data i DAX-formler

I dette afsnit beskrives det, hvordan du opretter filtre i DAX-formler (Data Analysis Expressions). Du kan oprette filtre i formler for at begrænse værdierne fra de kildedata, der bruges i beregninger. Det gør du ved at angive en tabel som et input til formlen og derefter angive et filterudtryk. Det filterudtryk, du angiver, bruges til at forespørge på dataene og returnerer kun et undersæt af kildedataene. Filteret anvendes dynamisk, hver gang du opdaterer resultatet af formlen, afhængigt af de aktuelle datakontekst.

I denne artikel

Oprette et filter på en tabel, der bruges i en formel

Du kan anvende filtre i formler, der tager en tabel som input. I stedet for at angive et tabelnavn kan du bruge funktionen FILTER til at definere et undersæt af rækker fra den angivne tabel. Dette undersæt overføres derefter til en anden funktion for handlinger som brugerdefinerede sammenlægninger.

Antag f. eks., at du har en tabel med data, der indeholder ordreoplysninger om forhandlere, og du vil beregne, hvor meget hver forhandler har solgt. Du kan dog nøjes med at vise salgsbeløbet for de forhandlere, der har solgt flere enheder af dine større værdi produkter. Følgende formel, der er baseret på en DAX-eksempelprojekt mappe, viser et eksempel på, hvordan du kan oprette denne beregning ved hjælp af et filter:

= SUMX (
     FILTRERE (' ResellerSales_USD ', ' ResellerSales_USD ' [antal] > 5 &&
     ' ResellerSales_USD ' [ProductStandardCost_USD] > 100)
     ' ResellerSales_USD ' [SalesAmt]
     )

  • Den første del af formlen angiver en af Power Pivot Sammenlægnings funktioner, som tager en tabel som et argument. SUMX beregner en sum over en tabel.

  • Den anden del af formlen, FILTER(table, expression),fortæller SUMX , hvilke data der skal bruges. SUMX kræver en tabel eller et udtryk, der resulterer i en tabel. Her, i stedet for at bruge alle dataene i en tabel, skal du bruge funktionen FILTER til at angive, hvilke rækker fra tabellen der skal bruges.

    Filterudtrykket består af to dele: den første del navnene på den tabel, som filteret gælder for. Den anden del definerer et udtryk, der skal bruges som filterbetingelse. I dette tilfælde filtrerer du på forhandlere, der har solgt mere end fem enheder og produkter, der koster mere end $100. Operatoren, &&, er en logisk og operator, som angiver, at begge dele af betingelsen skal være sande, for at rækken kan høre til det filtrerede undersæt.

  • Den tredje del af formlen fortæller funktionen SUMX , hvilke værdier der skal lægges sammen. I dette tilfælde bruger du kun salgsbeløbet.

    Bemærk, at funktioner som f. eks. FILTER, der returnerer en tabel, aldrig returnerer tabellen eller rækkerne direkte, men er altid integreret i en anden funktion. Du kan finde flere oplysninger om FILTER og andre funktioner, der bruges til filtrering, herunder flere eksempler, under filter funktioner (DAX).

    Bemærk!: Filterudtrykket påvirkes af den kontekst, det bruges til. Hvis du for eksempel bruger et filter i et mål, og målingen bruges i en pivottabel eller et pivotdiagram, kan det undersæt af data, der returneres, være påvirket af yderligere filtre eller udsnitsværktøjer, som brugeren har anvendt i pivottabellen. Du kan finde flere oplysninger om kontekst under kontekst i DAX-formler.

Filtre, der fjerner dubletter

Ud over filtrering af specifikke værdier kan du returnere et entydigt sæt værdier fra en anden tabel eller kolonne. Dette kan være nyttigt, når du vil tælle antallet af entydige værdier i en kolonne, eller du kan bruge en liste over entydige værdier for andre handlinger. DAX indeholder to funktioner til at returnere entydige værdier: DISTINCT Function og Values.

  • Funktionen DISTINCT undersøger en enkelt kolonne, som du angiver som et argument til funktionen, og returnerer en ny kolonne, der kun indeholder de entydige værdier.

  • Funktionen værdier returnerer også en liste over entydige værdier, men returnerer også det ukendte medlem. Dette er nyttigt, når du bruger værdier fra to tabeller, der er knyttet til en relation, og der mangler en værdi i en tabel og findes i den anden. Du kan finde flere oplysninger om det ukendte medlem under kontekst i DAX-formler.

Begge disse funktioner returnerer en hel kolonne med værdier. Derfor bruger du funktionerne til at få en liste over værdier, der derefter overføres til en anden funktion. For eksempel kan du bruge følgende formel til at få vist en liste over de forskellige produkter, der sælges af en bestemt forhandler, ved hjælp af den entydige produktnøgle og derefter tælle produkterne på listen ved hjælp af funktionen COUNTROWS:

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

Toppen af siden

Sådan påvirker kontekst filtre

Når du føjer en DAX-formel til en pivottabel eller et pivotdiagram, kan resultatet af formlen påvirkes af konteksten. Hvis du arbejder i en Power Pivot tabel, er konteksten den aktuelle række og dens værdier. Hvis du arbejder i en pivottabel eller et pivotdiagram, betyder konteksten det sæt eller delmængde af data, der er defineret af handlinger som f. eks. udsnit eller filtrering. Designet af pivottabellen eller pivotdiagrammet udsætter også sin egen sammenhæng. Hvis du for eksempel opretter en pivottabel, der grupperer salg efter område og år, vises kun de data, der gælder for de pågældende områder og år, i pivottabellen. Derfor beregnes de målpunkter, du føjer til pivottabellen, i konteksten for kolonne-og rækkeoverskrifterne samt eventuelle filtre i målingsformlen.

Hvis du vil have mere at vide, skal du se kontekst i DAX-formler.

Toppen af siden

Fjerne filtre

Når du arbejder med komplekse formler, kan det være en god ide at vide nøjagtigt, hvad de aktuelle filtre er, eller måske vil du ændre filter delen af formlen. DAX indeholder flere funktioner, som du kan bruge til at fjerne filtre og til at styre, hvilke kolonner der bevares som en del af den aktuelle filterkontekst. Dette afsnit indeholder en oversigt over, hvordan disse funktioner påvirker resultaterne i en formel.

Tilsidesætte alle filtre med funktionen ALL

Du kan bruge funktionen ALL til at tilsidesætte eventuelle filtre, der tidligere har været anvendt, og returnere alle rækker i tabellen til den funktion, der udfører aggregeringen eller en anden handling. Hvis du bruger en eller flere kolonner i stedet for en tabel som argumenter til ALL, returnerer funktionen ALL alle rækker og ignorerer eventuelle kontekst filtre.

Bemærk!: Hvis du kender relationsdatabase terminologien, kan du betragte ALL som at generere den naturlige venstre ydre joinforbindelse af alle tabellerne.

Antag f. eks., at du har tabellerne, salg og produkter, og du vil oprette en formel, der beregner summen af salg for det aktuelle produkt divideret med salget for alle produkter. Du skal tage højde for det faktum, at når formlen bruges i en måling, kan brugeren af pivottabellen bruge et udsnitsværktøj til at filtrere efter et bestemt produkt med produktnavnet på rækkerne. Hvis du vil have den sande værdi af nævneren uanset eventuelle filtre eller udsnit, skal du tilføje funktionen alle for at tilsidesætte eventuelle filtre. Følgende formel er et eksempel på, hvordan du kan bruge alle til at tilsidesætte virkningen af tidligere filtre:

= SUM (salg [beløb])/SUMX (salg [beløb], FILTER (salg, alle (Products)))

  • Den første del af formlen, SUM (salg [beløb]), beregner tælleren.

  • Summen tager hensyn til den aktuelle kontekst, hvilket betyder, at hvis du tilføjer formlen i en beregnet kolonne, anvendes række konteksten, og hvis du tilføjer formlen i en pivottabel som et mål, anvendes eventuelle filtre, der er anvendt i pivottabellen (filterkontekst).

  • Den anden del af formlen beregner nævneren. Funktionen ALL tilsidesætter eventuelle filtre, der kan anvendes på Products tabellen.

Du kan finde flere oplysninger, herunder detaljerede eksempler, i funktionen All.

Tilsidesætte bestemte filtre med funktionen ALLEXCEPT

Funktionen ALLEXCEPT tilsidesætter også eksisterende filtre, men du kan angive, at nogle af de eksisterende filtre skal bevares. De kolonner, du navngiver som argumenter til funktionen ALLEXCEPT, angiver, hvilke kolonner der fortsat filtreres. Hvis du vil tilsidesætte filtre fra de fleste kolonner, men ikke alle, er ALLEXCEPT mere praktisk end alle. Funktionen ALLEXCEPT er særlig nyttig, når du opretter pivottabeller, der kan filtreres i mange forskellige kolonner, og du vil styre de værdier, der bruges i formlen. Du kan finde flere oplysninger, herunder et detaljeret eksempel på, hvordan du bruger ALLEXCEPT i en pivottabel, i funktionen ALLEXCEPT.

Toppen af siden

Bemærk!:  Denne side er oversat ved hjælp af automatisering og kan indeholde grammatiske fejl og unøjagtigheder. Det er vores hensigt, at dette indhold skal være nyttigt for dig. Var disse oplysninger nyttige? Her er artiklen på engelsk, så du kan sammenligne.

Har du brug for mere hjælp?

Udvid dine Office-færdigheder
Gå på opdagelse i kurser
Få nye funktioner først
Bliv Office Insider

Var disse oplysninger nyttige?

Tak for din feedback!

Tak for din feedback! Det lyder, som om det vil kunne hjælpe, hvis du bliver sat i forbindelse med en af vores Office-supportteknikere.

×