Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.

I det här avsnittet beskrivs hur du skapar filter i DAX-formler (Data Analysis Expressions). Du kan skapa filter i formler för att begränsa värdena från de källdata som används i beräkningar. Det gör du genom att ange en tabell som indata till formeln och sedan definiera ett filteruttryck. Filteruttrycket som du anger används för att köra frågor mot data och returnera endast 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

Du kan använda filter i formler som tar 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. Den delmängden skickas sedan till en annan funktion, för åtgärder som anpassade aggregeringar.

Anta till exempel att du har en tabell med data som innehåller orderinformation om återförsäljare, och du vill beräkna hur mycket varje återförsäljare har sålt. Men du vill visa försäljningsbeloppet bara för de återförsäljare som sålde flera enheter av dina produkter med högre värde. Följande formel, baserad på DAX-exempelarbetsboken, visar ett exempel på hur du kan skapa den här beräkningen med hjälp av ett filter:

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

  • Den första delen av formeln anger en av de Power Pivot aggregeringsfunktioner som använder en tabell som ett argument. SUMMAX beräknar en summa över en tabell.

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

    Filteruttrycket har två delar: den första delen namnger tabellen som filtret gäller för. Den andra delen definierar ett uttryck som ska användas som filtervillkor. I det här fallet filtrerar du på återförsäljare som har sålt fler än 5 enheter och produkter som kostar mer än 1 000 kronor. Operatorn, &&, är en logisk OCH-operator, som anger att båda delarna av villkoret måste uppfyllas för att raden ska tillhöra den filtrerade delmängden.

  • Den tredje delen av formeln talar SUMX till vilka värden som ska summeras. I det här fallet använder du bara försäljningsbeloppet.

    Observera att funktioner som FILTER, som returnerar en tabell, aldrig returnerar tabellen eller raderna direkt, men alltid är 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 sammanhanget som det används i. Om du till exempel använder ett filter i ett mått och måttet används i en pivottabell eller pivotdiagram kan den delmängd av data som returneras påverkas av ytterligare filter eller utsnitt som användaren har använt i pivottabellen. Mer information om sammanhang finns i Sammanhang i DAX-formler.

Filter som tar bort dubbletter

Förutom att filtrera efter specifika värden kan du returnera en unik uppsättning värden från en annan tabell eller kolumn. Det kan vara användbart 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: Funktionen DISTINCT och funktionen VÄRDEN.

  • Funktionen DISTINCT undersöker en enstaka kolumn som du anger som ett argument till funktionen och returnerar en ny kolumn som innehåller endast distinkta värden.

  • Funktionen VÄRDEN returnerar också en lista med unika värden, men returnerar också den okända medlemmen. Det här är användbart när du använder värden från två tabeller som är sammanade med en relation och ett värde saknas i den ena tabellen och finns i den andra. Mer information om den okända medlemmen finns i Sammanhang i DAX-formler.

Båda dessa funktioner returnerar en hel kolumn med värden. Du använder därför funktionerna för att få en lista med värden som sedan överförs till en annan funktion. Du kan till exempel använda följande formel för att få en lista över de distinkta produkter som säljs av en viss återförsäljare, med hjälp av den unika produktnyckeln, och sedan räkna produkterna i listan med hjälp av funktionen ANTAL.TILL.

=ANTAL.OM(DISTINCT('ResellerSales_USD'[ProductKey]))

Överst på sidan

Hur sammanhang påverkar filter

När du lägger till en DAX-formel i en pivottabell eller pivotdiagram kan formelresultatet påverkas av sammanhanget. Om du arbetar i en Power Pivot tabell är kontexten den aktuella raden och dess värden. Om du arbetar i en pivottabell eller pivotdiagram innebär kontexten den mängd eller delmängd data som definieras av åtgärder som slicering eller filtrering. Utformningen av pivottabellen eller den pivotdiagram också ett eget sammanhang. Om du till exempel skapar en pivottabell som grupperar försäljningen per region och år visas bara de data som gäller för de regionerna och åren i pivottabellen. Alla mått som du lägger till i pivottabellen beräknas därför inom kontexten för kolumn- och radrubrikerna plus eventuella filter i måttformeln.

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 vad de aktuella filtren är, eller så kanske du vill ändra filterdelen av formeln. I DAX finns flera funktioner som gör att du kan ta bort filter och styra vilka kolumner som behålls som en del av det aktuella filterkontexten. Det här avsnittet innehåller en översikt över hur de här funktionerna påverkar resultatet av en formel.

Åsidosätta alla filter med funktionen ALLA

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

Obs!: Om du känner till terminologin för relationsdatabaser kan du tänka ALL som att generera den naturliga vänstra yttre joinen av alla tabeller.

Anta till exempel 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. Du måste tänka på att om formeln används i ett mått kanske användaren av pivottabellen använder ett utsnitt för att filtrera fram en viss produkt, med produktnamnet på raderna. Om du vill få fram det sanna värdet för nämnaren oavsett filter eller utsnitt måste du därför lägga till funktionen ALLA för att åsidosätta eventuella filter. Följande formel är ett exempel på hur du använder ALLA för att åsidosätta effekterna av tidigare filter:

=SUMMA (Försäljning[Belopp])/SUMMAX(Försäljning[Belopp], FILTER(Försäljning, ALL(Produkter)))

  • Den första delen av formeln, SUMMA (Försäljning[Belopp]), beräknar täljaren.

  • Summan tar hänsyn till det aktuella sammanhanget, vilket innebär att om du lägger till formeln i en beräknad kolumn tillämpas radkontexten och om du lägger till formeln i en pivottabell som ett mått tillämpas eventuella filter som används i pivottabellen (filterkontexten) .

  • Den andra delen av formeln beräknar nämnaren. Funktionen ALLA åsidosätter eventuella filter som kan användas i Products tabell.

Mer information, inklusive detaljerade exempel, finns i Funktionen ALL.

Åsidosätta specifika filter med funktionen ALLEXCEPT

Funktionen ALLEXCEPT åsidosätter även befintliga filter, men du kan ange att vissa av de befintliga filtren ska bevaras. Kolumnerna som du namnar som argument till funktionen ALLEXCEPT anger vilka kolumner som fortsätter att filtreras. Om du vill åsidosätta filter från de flesta kolumner, men inte alla, är ALLEXCEPT mer praktiskt än ALL. Funktionen ALLEXCEPT är särskilt användbar när du skapar pivottabeller som kan filtreras på många olika kolumner och du vill styra värdena som används i formeln. Mer information, inklusive ett detaljerat exempel på hur du använder ALLEXCEPT i en pivottabell finns i FUNKTIONEN ALLEXCEPT.

Överst på sidan

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×