Office
Logga in

Filtrera data i DAX-formler

Obs!:  Vi vill kunna erbjuda dig bästa möjliga supportinnehåll så fort som möjligt och på ditt språk. Den här sidan har översatts med hjälp av automatiserad översättning och kan innehålla grammatiska fel eller andra felaktigheter. Vår avsikt är att den här informationen ska vara användbar för dig. Vill du berätta för oss om informationen är till hjälp längst ned på sidan? Här är artikeln på engelska som referens.

Det här avsnittet beskrivs hur du skapar filter i formler för Data Analysis Expressions (DAX). Du kan skapa filter i formler för att begränsa värdena från källdata som används i beräkningar. Du gör detta genom att ange en tabell som indata till formeln och sedan definiera ett filteruttryck. Filteruttrycket som du anger används för att fråga efter data och returnera en delmängd av källdata. Filtret tillämpas dynamiskt varje gång du uppdaterar resultatet av formeln, beroende på den aktuella kontexten för dina data.

I den här artikeln

Skapa ett Filter på en tabell som används i en formel

Filter som tar bort dubbletter

Hur påverkas filter av kontexten

Ta bort filter

Åsidosätta alla filter med funktionen ALL

Åsidosätta särskilda filter med funktionen ALLEXCEPT

Skapa ett filter på en tabell som används i en formel

Du kan använda filter i formler som använder en tabell som indata. I stället för att ange ett tabellnamn använder du funktionen FILTER för att definiera en delmängd rader från den angivna tabellen. Delmängden skickas sedan till en annan funktion för åtgärder som anpassade aggregeringar.

Anta att du har en tabell med data som innehåller orderinformation för återförsäljare och du vill beräkna hur mycket varje återförsäljare har sålt. Du vill dock enbart visa försäljningssumman för de återförsäljare som sålt flera enheter av produkter av högre värde. Följande formel, baserat på DAX-exempelarbetsboken, är ett exempel på hur du kan skapa den här beräkningen genom att använda ett filter:

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

  • Den första delen av formeln anger en aggregeringsfunktioner Power Pivot som tar en tabell som ett argument. SUMX beräknar en summa över en tabell.

  • Den andra delen av formeln FILTER(table, expression),står SUMX vilka data som ska användas. SUMX kräver en tabell eller ett uttryck som resulterar i en tabell. Här, i stället för med alla data i en tabell kan funktionen du FILTER för att ange vilka rader från tabellen används.

    Filteruttrycket har två delar: den första delen kalkylbladsnamn tabellen som filtret gäller. Den andra delen definierar ett uttryck som ska användas som villkor för filtret. I det här fallet filtrerar du på återförsäljare som sålde mer än 5 enheter och produkter som kostar mer än 100 kr. Operatorn, & &, är en logisk och operator som anger att båda delarna av villkor måste uppfyllas för raden ska tillhöra filtrerad delmängd.

  • Den tredje delen av formeln anger vilka värden som ska summeras för funktionen SUMX . I det här fallet använder du enbart försäljningssumman.

    Observera att funktioner som returnerar en tabell, till exempel FILTER aldrig returnera den tabell eller rader direkt, men är alltid inbäddade i en annan funktion. Mer information om FILTER och andra funktioner som används för filtrering, inklusive fler exempel finns i Filterfunktioner (DAX).

    Obs!: Filteruttrycket påverkas av kontexten som det ska användas. Om du använder ett filter i ett mått och åtgärden används i en pivottabell eller ett pivotdiagram, kan delmängden data som returneras påverkas av ytterligare filter eller utsnitt som användaren har använt i pivottabellen. Mer information om samband finns i kontext i DAX-formler.

Filter som tar bort dubbletter

Förutom filtrering för specifika värden kan du gå tillbaka en unik uppsättning värden från en annan tabell eller kolumn. Det kan vara användbara när du vill räkna antalet unika värden i en kolumn eller använda en lista med unika värden för andra åtgärder. DAX innehåller två funktioner för att returnera distinkta värden: DISTINCT, funktion och VALUES, funktion.

  • Funktionen DISTINCT undersöker en enskild kolumn som du anger som argument till funktionen och returnerar en ny kolumn som innehåller bara de distinkta värdena.

  • Funktionen värden returnerar även en lista med unika värden, men returnerar också okänd medlem. Detta är användbart när du använder värden från två tabeller som har anslutit via en relation och ett värde är saknas i en tabell och presentera i den andra. Mer information om den okända medlemmen finns i kontext i DAX-formler.

Båda funktionerna returnerar en hel kolumn med värden. Därför använder du funktionerna för att hämta en lista med värden som sedan skickas till en annan funktion. Du kan till exempel använda följande formel om du vill få en lista över specifika produkter som säljs av en viss återförsäljare, med hjälp av den unika produktnyckeln, och sedan räkna antalet produkter i listan med hjälp av funktionen COUNTROWS:

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

Överst på sidan

Så här påverkas filter av kontexten

När du lägger till en DAX-formel i en pivottabell eller ett pivotdiagram påverkas resultatet av formeln av kontexten. Om du arbetar i en tabell Power Pivot är kontexten den aktuella raden och dess värden. Om du arbetar i en pivottabell eller ett pivotdiagram: kontexten ange eller delmängd data som definieras av åtgärder som skivning eller filtrering. Design för pivottabell- eller pivotdiagramrapport också inför ett eget kontexten. Till exempel om du skapar en pivottabell som grupperas försäljningen efter region och år visas endast de data som gäller för dessa områden och år i pivottabellen. Därför beräknas alla åtgärder som du har lagt till i pivottabellen i kontexten för kolumn- och radrubriker plus eventuella filter i formeln mått.

Mer information finns i kontext i DAX-formler.

Överst på sidan

Ta bort filter

När du arbetar med komplexa formler kanske du vill veta exakt vilka filtren är eller ändra filterdelen av formeln. DAX innehåller flera funktioner som gör det möjligt att ta bort filter och bestämma vilka kolumner som ska bevaras som en del av den aktuella filterkontexten. Det här avsnittet innehåller en översikt över hur dessa funktioner påverkar resultat i en formel.

Åsidosätta alla filter med funktionen ALL

Du kan använda funktionen ALL för att åsidosätta alla filter som har använts tidigare och returnera alla rader i tabellen till den funktion som utför mängd eller någon annan åtgärd. Om du använder en eller flera kolumner, i stället för en tabell som argument till ALLreturnerar funktionen ALL alla rader, ignorerar alla kontextfilter.

Obs!: På relationsdatabasspråk skapar funktionen ALL den naturliga vänstra yttre kopplingen för alla tabeller.

Anta att du har tabellerna Försäljning och Produkter och vill skapa en formel som beräknar summan av försäljningen för den aktuella produkten dividerat med försäljningen för alla produkter. Om formeln används i ett beräknat fält måste du vara medveten om att användaren av pivottabellen kanske använder ett utsnitt för att filtrera fram en viss produkt, med produktnamnet i raderna. Om du vill hämta det riktiga värdet på nämnaren, oavsett alla filter och utsnitt, måste du därför lägga till funktionen ALL för att åsidosätta dessa filter. Följande formel visar ett exempel på hur du använder ALL för att åsidosätta effekterna av tidigare filter:

= Summa (försäljning [Amount]) / SUMX (försäljning [Amount] FILTER (försäljning, ALL(Products)))

  • Den första delen av formeln, SUM (Sales[Amount]), beräknar täljaren.

  • Summan påverkas av aktuell kontext, vilket innebär att om du lägger till formeln i en beräknad kolumn så används radkontexten. Lägger du till formeln i en pivottabell som ett beräknat fält tillämpas alla filter som finns i pivottabellen (filterkontext).

  • Den andra delen av formeln beräknar nämnaren. Funktionen ALL åsidosätter eventuella filter som kan användas till tabellen Products .

Mer information och detaljerade exempel finns i ALL, funktion.

Åsidosätta särskilda filter med funktionen ALLEXCEPT

Funktionen ALLEXCEPT åsidosätter också befintliga filter, men du kan ange att vissa av de befintliga filter ska bevaras. De kolumner som du namnger som argument till funktionen ALLEXCEPT anger du vilka kolumner fortsätter att filtreras. Om du vill åsidosätta filter från de flesta kolumnerna men inte alla är ALLEXCEPT mycket enklare än alla. Funktionen ALLEXCEPT är särskilt användbart när du skapar pivottabeller som kan filtreras på många olika kolumner och du vill styra vilka värden som används i formeln. Mer information, inklusive ett detaljerat exempel på hur du använder ALLEXCEPT i en pivottabell finns i ALLEXCEPT, funktion.

Överst på sidan

Utöka dina Office-kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×