Filtrere data i DAX-formler

Vigtigt: Denne artikel er maskinoversat. Se ansvarsfraskrivelsen. Du kan finde den engelske version af denne artikel her til din orientering.

Dette afsnit beskrives, hvordan du opretter filtre i formler til Data Analysis Expressions (DAX). Du kan oprette filtre i formler til at begrænse værdierne fra kildedataene, der bruges i beregninger. Du kan gøre dette ved at angive en tabel som input til formlen og derefter definere et filterudtryk. Filterudtrykket, du angiver bruges til at forespørge på data og kun returnere et undersæt af kildedataene. Filteret anvendes dynamisk hver gang du opdaterer resultaterne af formlen, afhængigt af den aktuelle kontekst af dine data.

Denne artikel indeholder

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

Filtre, der fjerner dubletter

Sådan påvirkes filtre af konteksten

Fjerne filtre

Tilsidesætte alle filtre med funktionen ALL

Tilsidesætte bestemte filtre med funktionen ALLEXCEPT

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

Du kan anvende filtre i formler, der bruger en tabel som input. I stedet for at skrive tabelnavnet bruger du funktionen FILTER til at angive en delmængde af rækker fra den angivne tabel. Dette undersæt overføres til en anden funktion, så der kan foretages handlinger, f.eks. brugerdefinerede sammenlægninger.

Forestil dig f.eks., at du har en tabel med data, der indeholder ordreoplysninger om forhandlere, og at du vil beregne, hvor meget hver forhandler har solgt. Du vil imidlertid kun vise salgsbeløbet for de forhandlere, der har solgt flere enheder med dine dyrere produkter. I følgende formel, der er baseret på DAX-eksempelprojektmappen, vises et eksempel på, hvordan du kan oprette denne beregning ved hjælp af et filter:

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

  • Den første del af formlen angiver en af de Power Pivot sammenlægningsfunktioner, som 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 bruge. SUMX kræver en tabel eller et udtryk, der resulterer i en tabel. I stedet for ved hjælp af alle dataene i en tabel, skal du her, bruge funktionen FILTER til at angive, hvilken af rækkerne fra tabellen anvendes.

    Filterudtrykket har to dele: den første del brugernavne den tabel, som filteret gælder. Den anden del definerer et udtryk, der skal bruges som filterbetingelsen. I dette tilfælde skal filtrerer du på forhandlere, der har solgt mere end 5 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 rækken skal tilhøre det filtrerede undersæt.

  • Den tredje del af formlen fortæller funktionen SUMX , hvilke værdier der skal opsummeres. I dette tilfælde anvendes kun salgsbeløbet.

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

    Bemærk: Filterudtrykket påvirkes af den kontekst, hvori det bruges. Hvis du f.eks. bruger et filter i en måling, og målingen bruges i en pivottabel eller et pivotdiagram, kan den delmængde 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 at filtrere efter bestemte 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 bruge en liste over entydige værdier til andre handlinger. DAX indeholder to funktioner, der returnerer entydige værdier: Funktionen DISTINCT og Funktionen VALUES.

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

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

Begge disse funktioner returnerer en hel kolonne med værdier. Du kan f.eks. bruge følgende formel til at hente en liste over særskilte produkter, der er blevet solgt af en bestemt forhandler, ved hjælp af en entydig produktnøgle og derefter tælle produkterne på denne liste ved hjælp af funktionen COUNTROWS:

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

Toppen af siden

Sådan påvirkes filtre af konteksten

Når du tilføjer en DAX-formel i 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 sæt eller delsæt af data, der er defineret af handlinger som udskæring eller filtrering. Designet til pivottabellen eller pivotdiagrammet medfører også sin egen kontekst. Hvis du opretter en pivottabel, der grupperer salget efter område og år, vises kun de data, der gælder for disse områder og år for eksempel i pivottabellen. Derfor beregnes alle målinger, du føjer til pivottabellen i konteksten af kolonne- og rækkeoverskrifter samt eventuelle filtre i formlen mål.

Du kan finde flere oplysninger under Kontekst i DAX-formler.

Toppen af siden

Fjerne filtre

Når du arbejder med komplekse formler, ønsker du måske at vide, nøjagtigt hvilke filtre der bruges i øjeblikket, eller du kan ønske at ændre filterkonteksten som en del af formlen. DAX indeholder flere funktioner, der giver mulighed for at fjerne filtre og 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 skal tilsidesætte alle filtre, der tidligere blev anvendt, og returnere alle rækker i tabellen til den funktion, der udfører handlingen Sammenlæg eller en anden. Hvis du bruger en eller flere kolonner i stedet for en tabel, som argumenter til ALL, returnerer funktionen ALL alle rækker, ignorerer alle kontekstfiltre.

Bemærk: Hvis du er bekendt med relationsdatabaseterminologi, kan du betragte ALL som en funktion, der opretter den naturlige venstre ydre joinforbindelse for alle tabeller.

Forestil dig f.eks., at du har tabellerne Salg og Produkter, og du vil oprette en formel, der beregner summen af salget for det aktuelle produkt divideret med salget for alle produkter. Du skal tage med i overvejelserne, at hvis formlen bruges i en måling, kan det være, at brugeren af pivottabellen anvender et udsnitsværktøj til at filtrere efter et bestemt produkt ved hjælp af produktnavnet på rækkerne. Derfor skal du tilføje funktionen ALL for at tilsidesætte alle filtre for at få den sande værdi af nævneren uanset filtre eller udsnitsværktøjer. I følgende formel vises et eksempel på, hvordan du kan bruge ALL til at tilsidesætte virkningen af tidligere filtre:

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

  • Første del af formlen, SUM (Salg[Beløb]), beregner tælleren.

  • Summen tager den aktuelle kontekst i betragtning, hvilket betyder, at hvis du tilføjer formlen i en beregnet kolonne, anvendes rækkekonteksten, og hvis du tilføjer formlen i en pivottabel som en måling, anvendes eventuelle filtre i pivottabellen (filterkonteksten).

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

Du kan finde flere oplysninger og detaljerede eksempler under 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 angiver som argumenter til funktionen ALLEXCEPT, angiver, hvilke kolonner der fortsat skal filtreres. Hvis du vil tilsidesætte filtre fra de fleste, men ikke alle kolonner, er det mere hensigtsmæssigt at bruge ALLEXCEPT i stedet for ALL. Funktionen ALLEXCEPT er særligt nyttig, når du opretter pivottabeller, der måske skal filtreres på mange forskellige kolonner, og du vil styre de værdier, der bruges i formlen. Du kan finde flere oplysninger, herunder et detaljeret eksempel på brugen af ALLEXCEPT i en pivottabel, under Funktionen ALLEXCEPT.

Toppen af siden

Bemærk: Ansvarsfraskrivelse for maskinoversættelse: Denne artikel er blevet oversat af et computersystem uden menneskelig indgriben. Microsoft tilbyder disse maskinoversættelse for at hjælpe ikke-engelsktalende brugere til at kunne nyde indhold om Microsofts produkter, tjenester og teknologier. Da artiklen er maskinoversat, kan den indeholde forkerte ord eller syntaks- eller grammatikfejl.

Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×