Snabbstart: Grunderna i DAX på 30 minuter

Viktigt!: Den här artikeln är maskinöversatt, se ansvarsfriskrivningen. Den engelska versionen av den här artikeln finns här för din referens.

Den här snabbstarten riktar sig till användare som inte har tidigare erfarenhet av Power Pivot i Excel eller projekt med tabellmodeller som skapats i SQL Server Data Tools. Snabbstarten är en kort och enkel introduktion till hur du kan lösa ett antal enklare datamodellerings- och analysproblem med hjälp av DAX (Data Analysis Expressions). Det här avsnittet innehåller begreppsmässig information, ett antal uppgifter som du kan göra och några frågor på vad du lärt dig. När du är klar med det här avsnittet bör du ha en grundlig förståelse av de vanligaste och mest grundläggande DAX-begreppen.

Vad är DAX?

DAX är en samling funktioner, operatorer och konstanter som kan användas i en formel, eller uttryck, för att beräkna och returnera ett eller flera värden. Enklare uttryckt kan du använda DAX för att skapa ny information från data som redan finns i din modell.

Varför är DAX så viktigt?

Det är enkelt att skapa en arbetsbok och att importera data till den. Du kan också skapa pivottabeller eller pivotdiagram som illustrerar viktig information utan att använda DAX-formler. Men vad gör du om du behöver analysera viktig försäljningsinformation från flera produktkategorier och datumintervall? Eller om du behöver kombinera viktig lagerinformation från flera tabeller i olika datakällor? Du kan göra detta och mycket mer med hjälp av DAX-formler. Genom att lära dig hur du skapar effektiva DAX-formler kan du få ut mer av dina data. När du har hämtat den information som du behöver kan du börja lösa verkliga affärsproblem som påverkar verksamhetens resultat. Det här är Business Intelligence, och DAX hjälper dig på vägen.

Krav

Om du redan vet hur man skapar formler i Microsoft Excel, är det lättare att förstå DAX. Men även om du inte har någon erfarenhet av Excel-formler kan du snabbt lära dig att använda DAX-formler för att lösa verkliga BI-problem. Läs bara vidare.

Vi kommer att fokus specifikt på förstå DAX-formler som används i beräkningar. Du bör redan vara bekant med grundläggande begrepp för både beräknade kolumner och mått (kallas även beräknade fält) som beskrivs i Power Pivot hjälp. Du bör även känna till Power Pivot i Excel redigering miljö och verktyg.

Exempelarbetsbok

Det bästa sättet att lära sig DAX är att skapa några enkla formler, använda dem med verkliga data och titta på resultatet. I exemplen och uppgifterna här används arbetsboken Contoso Sample DAX Formulas.xlsx. Du kan hämta arbetsboken på http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. När du har hämtat arbetsboken till datorn öppnar du den och öppnar sedan Power Pivot-fönstret.

Nu sätter vi igång!

Vi kommer att fokusera på tre viktiga begrepp när vi beskriver DAX: Syntax, funktioner och kontext. Självklart finns det andra viktiga begrepp i DAX, men dessa tre begrepp ger en bra grund att bygga vidare på.

Syntax

Innan du skapar egna formler ska vi ta en titt på syntaxen i DAX-formler. Syntaxen innehåller de olika elementen som en formel består av, eller enkelt uttryckt, hur formeln skrivs. Nu ska vi titta på ett exempel på en enkel DAX-formel som används för att skapa nya data (värden) för varje rad i den beräknade kolumnen Margin i tabellen FactSales: (färgerna på texten i formeln används endast i illustrativt syfte)

Formel för beräknad kolumn

Den här formelns syntax innehåller följande element:

  1. Likhetstecknet (=) är en operator som anger början av formeln, och när formeln beräknas returneras ett resultat eller värde. Alla formler som beräknar ett värde inleds med ett likhetstecken.

  2. Kolumnen [SalesAmount] som formeln refererar till innehåller de värden som vi vill subtrahera från. En kolumnreferens i en formel omges alltid av hakparenteser, []. Till skillnad från Excel-formler som refererar till en cell, refererar en DAX-formel alltid till en kolumn.

  3. Den matematiska operatorn för subtraktion (-).

  4. Kolumnen [TotalCost] som formeln refererar till innehåller de värden som vi vill subtrahera från värden i kolumnen [SalesAmount].

När du ska läsa en DAX-formel är det ofta enklare att bryta ned varje element till ett språk som du tänker på och talar varje dag. Du kan exempelvis läsa den här formeln som:

i den FactSales tabell för varje rad i den beräknade kolumnen Margin, beräkna (=) ett värde genom att subtrahera (-) värden i den [ totalsumma ] kolumn från värden i den [ försäljningsbelopp ] kolumn.

Nu ska vi ta en titt på en annan typ av formel, en som används i ett mått:

Formel för beräknad kolumn

Den här formeln innehåller följande syntaxelement:

  1. Måttnamnet Sum of Sales Amount. Formler för mått kan innehålla Måttnamn, följt av ett kolon, följt av beräkningsformeln.

  2. Likhetsteckenoperatorn (=) anger början av beräkningsformeln. När den beräknas returneras ett resultat.

  3. Funktionen SUM adderar alla talen i kolumnen [SalesAmount]. Du lär dig mer om funktioner senare.

  4. Parenteser, (), omger ett eller flera argument. Alla funktioner kräver minst ett argument. Ett argument skickar ett värde till en funktion.

  5. Tabellen FactSales som formeln refererar till.

  6. Kolumnen [SalesAmount] i tabellen FactSales som formeln refererar till. Med det här argumentet vet funktionen SUM i vilken kolumn en summa ska aggregeras.

Du kan läsa den här formeln som:

För den mått med namnet Sum of Sales Amount beräkna (=) SUMMAN av värdena i den [ försäljningsbelopp ] kolumn i den FactSales tabell.

När den placeras i värdena släppzonen i en Fältlista för pivottabell, denna åtgärd beräknar och returnerar värden som definieras av varje cell i pivottabellen, till exempel mobiltelefoner i USA.

Observera att en del saker är annorlunda i den här formeln jämfört med formeln som vi använde för den beräknade kolumnen Margin. Mer specifikt lade vi till en funktion, SUM. Funktioner är fördefinierade formler som gör det lättare att göra komplexa beräkningar och modifikationer med tal, datum, tid, text och mer. Du lär dig mer om funktioner senare.

Till skillnad från den beräknade kolumnen Margin tidigare kan se du kolumnen [SalesAmount] har föregås av den tabellen FactSales som kolumnen tillhör. Detta kallas ett fullständigt kvalificerat kolumnnamn att den innehåller kolumnnamn föregås av tabellnamnet. Kolumner som refereras i samma tabell behöver inte tabellnamnet tas med i formeln. Detta kan göra långa formler som refererar till många kolumner kortare och enklare att läsa. Men är det bra att alltid ta med tabellnamnet i mått formler, även när du är i samma tabell.

Obs!: Om namnet på tabellen innehåller blanksteg, reserverade nyckelord eller tecken som inte tillåts, måste du placera tabellnamnet inom enkla citattecken. Du måste även sätta tabellnamn inom citattecken om namnet innehåller tecken som inte ingår i den alfanumeriska ANSI-teckenuppsättningen, oavsett om tecknet stöds av språkinställningen eller inte.

Det är viktigt att dina formler har rätt syntax. Om syntaxen inte är rätt returneras vanligtvis ett syntaxfel. I andra fall kan syntaxen vara korrekt, men de returnerade värdena kanske inte är vad du väntade dig. IntelliSense ingår i Power Pivot (och SQL Server Data Tools). IntelliSense är en funktion som hjälper dig att välja rätt element så att det blir lättare att skapa syntaktiskt korrekta formler.

Nu ska vi skapa en enkel formel Den här uppgiften hjälper dig att bättre förstå formelsyntaxen och hur IntelliSense fungerar i formelfältet.

Uppgift: Skapa en enkel formel för en beräknad kolumn

  1. Om du inte redan befinner dig i fönstret Power Pivot i Excel, på den Power Pivot menyfliksområdet klickar du på Power Pivot fönster.

  2. I Power Pivot-fönstret klickar du på tabellen FactSales (flik).

  3. Rulla till kolumnen längst till höger och klicka på Lägg till kolumn i kolumnrubriken.

  4. Klicka i formelfältet längs överkanten i modellutformningsfönstret.

    Formelfältet i PowerPivot

    Nu visas markören i formelfältet. Formelfältet är det fält där du kan skriva en formel för en beräknad kolumn eller ett beräknat fält.

    Nu ska vi titta på de tre knapparna till vänster om formelfältet.

    Formelfältet

    När markören är aktiv i formelfältet blir de tre knapparna aktiva. Knappen längst till vänster, X, är bara en Avbryta-knapp. Prova att klicka på den. Markören visas inte längre i formelfältet, och Avbryt-knappen och bockmarkeringsknappen visas inte heller. Klicka i formelfältet igen. Nu visas Avbryta-knappen och bockmarkeringsknappen igen. Det betyder att du kan börja skriva en formel.

    Bockmarkeringsknappen är formelkontrollknappen. Den gör inte så mycket förrän du har skrivit en formel. Vi kommer tillbaka till den om en liten stund.

    Klicka på Fx -knappen. Ser du att visas en ny dialogruta. dialogrutan Infoga funktion. Dialogrutan Infoga funktion är det enklaste sättet att börja skriva en DAX-formel. Vi lägger till en funktion i en formel när vi skapa ett mått lite senare, men nu behöver du inte lägga till en funktion i en beräknad kolumnformel. Gå vidare och Stäng dialogrutan Infoga funktion.

  5. Skriv ett likhetstecken (=) i formelfältet och sedan en inledande hakparentes, [. Ett litet fönster visas med alla kolumnerna i tabellen FactSales. Det här är IntelliSense i praktiken.

    Eftersom beräknade kolumner alltid skapas i den aktiva tabellen som du arbetar i behöver kolumnnamnet inte föregås av tabellnamnet. Rulla nedåt och dubbelklicka på [SalesQuantity]. Du kan också rulla till önskat kolumnnamn och trycka på Tabb.

    Nu är markören aktiv till höger om [SalesQuantity].

  6. Skriv ett blanksteg, följt av subtraktionsoperatorn - (ett minustecken) och sedan ett till blanksteg.

  7. Nu, Skriv ett annat inledande hakparentes [. Den här gången markerar du [ReturnQuantity] kolumnen och trycker på RETUR.

    Om ett fel returneras kontrollerar du syntaxen. Om det behövs jämför du den med formeln i den beräknade kolumnen Margin som beskrevs tidigare.

    När du slutför formeln genom att trycka på Retur visas ordet Beräknar i statusfältet längs nederkanten i Power Pivot-fönstret. Det går snabbt även om du precis beräknat nya värden för över tre miljoner rader.

  8. Högerklicka på kolumnrubriken och byt namn på kolumnen till NetSales.

Klart! Nu har du skapat en enkel men kraftfull DAX-formel. För varje rad i tabellen FactSales beräknar formeln NetSales ett värde genom att subtrahera värdet i kolumnen [ReturnQuantity] från värdet i kolumnen [SalesQuantity]. Observera att vi sa "för varje rad". Det här har att göra med ett annat viktigt begrepp i DAX: radkontext. Du lär dig mer om radkontext senare.

Tips: 

Det är något särskilt viktiga att förstå när du skriver en operator i en DAX-formel datatyp i argumenten som du använder. Till exempel om du skriver formeln = 1 & 2, det värde som returnerats ska vara ett textvärde i "12". Detta beror på operatorn et (&) är för textkombinationsoperatorer. DAX tolkar den här formeln att läsa: beräkna ett resultat genom att inte vidta värdet 1 som text och lägga till värdet 2 som text. Om du skrev = 1 + 2, DAX läser den här formeln som: beräkna ett resultat genom att använda det numeriska värdet 1 och lägga till det numeriska värdet 2. Resultatet är naturligtvis "3", ett numeriskt värde. DAX beräknar resulterande värden beroende på operator i formeln inte baserat på datatypen för kolumner som används i argumentet. Datatyper i DAX är viktigt, men inte omfattas av det här Snabbstart. Mer information om datatyper och operatorer i DAX-formler finns i referens för DAX (http://go.microsoft.com/fwlink/?LinkId=239769 & clcid = 0x409) i Books Online.

Låt oss en annan. Den här gången skapar du en åtgärd genom att skriva formeln och med hjälp av IntelliSense. Inte oroa dig för mycket om du inte förstår formeln. Viktiga här är att lära dig hur du skapar en formel som använder flera element tillsammans i korrekt syntax.

Uppgift: Skapa en formel för mått

  1. Klicka i en tom cell i beräkningsområdet i tabellen FactSales. Det här är området med tomma celler som är placerat strax under en tabell i Power Pivot-fönstret.

Beräkningsområdet i PowerPivot

  1. Skriv namnet Previous Quarter Sales i formelfältet.

  2. Skriv ett likhetstecken (=) för att inleda beräkningsformeln.

  3. Börja skriva bokstäverna CAL och dubbelklicka sedan på den funktion som du vill använda. I den här formeln ska du använda funktionen CALCULATE.

  4. Skriv en inledande parentes, (, som inleder argumenten som ska skickas till funktionen CALCULATE.

    Observera att IntelliSense visar de argument som krävs för funktionen CALCULATE så fort du skrivit den inledande parentesen. Du lär dig mer om argument om en liten stund.

  5. Skriv de första bokstäverna i tabellen factsales och dubbelklicka sedan på FactSales[i den nedrullningsbara listanSales].

  6. Skriv ett kommatecken (,) för att ange det första filtret, skriv PRE och dubbelklicka på funktionen PREVIOUSQUARTER.

    När du har valt funktionen PREVIOUSQUARTER visas en till inledande parentes som anger att ett till argument krävs, den här gången för funktionen PREVIOUSQUARTER.

  7. Skriv de första bokstäverna dimension och dubbelklicka sedan på Nedtonatdatum[Datumnyckel].

  8. Stäng både argumentet som skickas till funktionen PREVIOUSQUARTER och funktionen CALCULATE genom att skriva två avslutande parenteser, )).

    Formeln bör se ut så här:

    Previous Quarter Sales:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey]))

  9. Verifiera formeln genom att klicka på formelkontrollknappen i formelfältet. Om ett fel visas kontrollerar du alla element i syntaxen.

Du har gjort det! Du just har skapat ett mått med hjälp av DAX och inte en enkel lista vid som. Den här formeln gör är beräkna den totala försäljningen för föregående kvartal, beroende på de filter som används i en pivottabell eller ett pivotdiagram.

Du har precis lärt dig flera viktiga aspekter av DAX-formler. För det första innehöll formeln två funktioner. Tänk på att funktionen PREVIOUSQUARTER är kapslad som ett argument som skickas till funktionen CALCULATE. DAX-formler kan innehålla upp till 64 kapslade funktioner. Det är osannolikt att det behövs så många kapslade funktioner i en formel. En sådan formel skulle vara väldigt svår att skapa och felsöka, och den skulle förmodligen inte vara särskilt snabb heller.

Du använde också filter i formeln. Filter begränsar vad som beräknas. I det här fallet valde du ett filter som argument, vilket i själva verket är en annan funktion. Du lär dig mer om filter senare.

Slutligen använde du funktionen CALCULATE. Det här är en av de mest kraftfulla funktionerna i DAX. När du redigerar datamodeller och skapar mer komplexa formler kommer du förmodligen att använda den här funktionen många gånger. Funktionen CALCULATE beskrivs inte närmare i den här snabbstarten, men i takt med att du lär dig mer om DAX bör du vara särskilt uppmärksam på funktionen.

Obs!: När du använder tidsinformationsfunktioner i DAX-formler måste du vanligtvis ange en unik datumkolumn med hjälp av dialogrutan Markera som datumtabell. I arbetsboken Contoso DAX Formula Samples.xlsx markeras kolumnen DateKey i tabellen DimDate som den unika datumkolumnen.

Extrauppgift

Du kanske frågar: "Vad är den enklaste DAX-formel kan jag skapa?" Svaret på som är bra, "formeln som du inte behöver". Och som är exakt vad du kan göra med hjälp av en standardaggregering funktion i ett mått. Nästan alla datamodell behöver filtrera och beräkna aggregerade data. Till exempel används funktionen Summa i den summan av summan av återförsäljarförsäljningen du såg tidigare för att summera tal i en viss kolumn. DAX innehåller flera andra funktioner som Aggregera värden samt. Du kan automatiskt skapa formler med hjälp av standard aggregeringar med hjälp av funktionen Autosumma.

Extrauppgift: Skapa en mått formel med hjälp av funktionen Autosumma

  1. Rulla till kolumnen ReturnQuantity i tabellen FactSales och markera hela kolumnen genom att klicka på kolumnrubriken.

  2. Klicka på knappen Autosumma på fliken Start i menyfliksområdet i gruppen beräkningar .

Autosumma i PowerPivot

  1. Klicka på nedpilen bredvid Autosumma och klicka sedan på medel (meddelande om den andra standardaggregering fungerar du kan använda måste också).
    Omedelbart, ett nytt mått skapas med namnet medelvärde av ReturnQuantity: följt av formeln = AVERAGE([ReturnQuantity]).

Visst var det enkelt? Alla formler som du skapar är självklart inte lika enkla. Men genom att använda funktionen Autosumma kan du snabbt skapa enkla formler med hjälp av standardaggregeringsberäkningar.

Nu bör du ha en relativt bra förståelse av syntaxen som används i DAX-formler. Du har också lärt dig hur du kan använda några riktigt smarta funktioner som IntelliSense och Autosumma för att snabbt skapa enkla och korrekta formler. Naturligtvis finns det mycket mer som du kan lära dig om syntax. Du hittar en hel del nyttig information i DAX-referensen och i SQL Books Online.

Snabba frågor om syntax

  1. Vad gör den här knappen i formelfältet?
    Funktionsknapp

  2. Av vad omges alltid ett kolumnnamn i en DAX-formel?

  3. Hur vill du skriva en formel för följande:
    i den DimProduct tabell för varje rad i den UnitMargin beräknad kolumn, beräkna ett värde genom att subtrahera värdena i den enhetskostnad kolumn från värden i den Enhetspris kolumn?

Du hittar svaren sist i det här avsnittet.

Funktioner

Funktioner är fördefinierade formler som utför beräkningar med hjälp av särskilda värden, kallade argument, som anges i en viss ordning eller enligt en bestämd struktur. Argument kan vara andra funktioner, en annan formel, kolumnreferenser, tal, text, logiska värden som TRUE eller FALSE eller konstanter.

I DAX ingår följande funktionskategorier: Datum- och tidsfunktioner, informationsfunktioner, logiska funktioner, matematiska funktioner, statistiska funktioner, textfunktioner och tidsinformationsfunktioner. Om du har arbetat med funktioner i Excel-formler kommer du att känna igen många av funktionerna i DAX. Observera dock att DAX-funktionerna är unika i följande hänseenden:

  • En DAX-funktion refererar alltid till en hel kolumn eller tabell. Om du bara vill använda särskilda värden från en tabell eller kolumn kan du lägga till filter i formeln.

  • Om du behöver anpassa beräkningarna för specifika rader innehåller DAX funktioner som gör att du kan använda den aktuella radens värde eller ett relaterat värde som ett slags argument för att utföra beräkningar som varierar beroende på kontext. Du lär dig mer om kontext senare.

  • I DAX finns många funktioner som returnerar en tabell i stället för ett värde. Tabellen visas inte, men används för att förse andra funktioner med indata. Du kan till exempel hämta en tabell och sedan räkna distinkta värden i den, eller beräkna dynamiska summor i filtrerade tabeller eller kolumner.

  • Du har tillgång till flera tidsinformationsfunktioner i DAX. Med de här funktionerna kan du definiera eller välja datumintervall och utföra dynamiska beräkningar baserat på dem. Du kan till exempel jämföra summor i parallella perioder.

Ibland är det svårt att veta vilka funktioner du behöver i en formel. Power Pivot och tabellmodelldesignern i SQL Server Data Tools innehåller funktionen Infoga funktion. Infoga funktion är en dialogruta där du kan välja funktioner efter kategori. Dialogrutan innehåller också korta beskrivningar av varje funktion.

Infoga funktion

Nu ska vi skapa en ny formel som innehåller en funktion som du ska välja via funktionen Infoga funktion.

Uppgift: Lägga till en funktion i en formel med hjälp av Infoga funktion

  1. Rulla till kolumnen längst till höger i tabellen FactSales och klicka på Lägg till kolumn i kolumnrubriken.

  2. Skriv ett likhetstecken (=) i formelfältet.

  3. Klicka på knappen Infoga funktion. Infoga funktion När du klickar här öppnas dialogrutan Infoga funktion.

  4. Klicka i listrutan Välj en kategori i dialogrutan Infoga funktion. Alla är markerat som standard och alla funktionerna i kategorin Alla visas nedan. Eftersom det finns många funktioner vill du förmodligen filtrera dem så att det blir lättare att hitta den typ av funktion som du behöver.

  5. För den här formeln vill du returnera data som redan finns i en annan tabell. Du ska göra det genom att använda en funktion i kategorin Filter. Klicka på kategorin Filter och rulla nedåt och dubbelklicka på funktionen RELATED i Välj en funktion. Stäng dialogrutan Infoga funktion genom att klicka på OK.

  6. Leta upp och välj kolumnen DimChannel[ChannelName] med hjälp av IntelliSense.

  7. Stäng formeln och tryck på Retur.

  8. När du slutför formeln genom att trycka på Retur visas ordet Beräknar i statusfältet längs nederkanten i Power Pivot-fönstret. Som du ser har en ny kolumn skapats i tabellen FactSales, med kanalinformation från tabellen DimChannel.

  9. Byt namn på kolumnen Channel.

    Formeln bör se ut ungefär så här: =RELATED(DimChannel[ChannelName])

Du har precis mött ännu en mycket viktig funktion i DAX, funktionen RELATED. Funktionen RELATED returnerar värden från en annan tabell. Du kan använda RELATED om det finns en relation mellan den tabell som du arbetar i och tabellen som innehåller de värden som du vill hämta. Funktionen RELATED har enorma möjligheter. I det här fallet kan du ta med säljkanalen för varje försäljning i tabellen FactSales. Du kan dölja tabellen DimChannel från fältlistan för pivottabellen så att det blir lättare att navigera och så att bara den viktigaste informationen som du verkligen behöver visas. Precis som funktionen CALCULATE som beskrevs tidigare, är funktionen RELATED väldigt viktig, och du kommer antagligen att använda den många gånger.

Som du ser kan funktionerna i DAX göra det lättare att skapa väldigt kraftfulla formler. Vi har egentligen bara tittat på grunderna. I takt med att du blir bättre på DAX kommer du att skapa formler med många olika funktioner. En av de bästa resurserna för att få detaljerad information om DAX-funktionerna är DAX-referensen (Data Analysis Expressions).

Snabba frågor om funktioner

  1. Vad refererar en funktion alltid till?

  2. Kan en formel innehålla mer än en funktion?

  3. Vilken funktionskategori använder du om du vill sammanfoga två textsträngar till en enda sträng?

Du hittar svaren sist i det här avsnittet.

Kontext

Kontext är ett av de viktigaste DAX-begreppen. Det finns två typer av kontexter i DAX: Radkontext och filterkontext. Vi börjar med att titta närmare på radkontexten.

Radkontext

Radkontexten kan enklast beskrivas som den aktuella raden. Kommer du ihåg den beräknade kolumnen Margin som vi använde som exempel när vi pratade om syntax? Formeln = [SalesAmount] - [TotalCost] beräknar ett värde i kolumnen Margin för varje rad i tabellen. Värdena för varje rad beräknas utifrån värdena i två andra kolumner, [SalesAmount] och [TotalCost] på samma rad. DAX kan beräkna värdena för varje rad i kolumnen Margin eftersom kontexten är känd: För varje rad hämtas värden i kolumnen [TotalCost] och subtraheras från värden i kolumnen [SalesAmount].

I den markerade cellen nedan beräknades värdet 49,54 USD på den aktuella raden genom att värdet 51,54 USD i kolumnen [TotalCost] subtraherades från värdet 101,08 USD i kolumnen [SalesAmount].

Radkontext i PowerPivot

Radkontext gäller inte bara för beräknade kolumner. Radkontext gäller även när en formel har en funktion som gäller filter för att identifiera en enskild rad i en tabell. Funktionen tillämpas natur en radkontext för varje rad i tabellen över vilka filtrering. Den här typen av radkontext gäller oftast mått.

Filterkontext

Filterkontext är lite svårare att förstå än radkontext. Filterkontexten kan enkelt beskrivas som ett eller flera filter som tillämpas i en beräkning som fastställer ett resultat eller värde.

Filterkontexten finns utöver radkontexten, inte i stället för den. Om du till exempel vill begränsa de värden som ska tas med i en beräkning ytterligare, kan du tillämpa en filterkontext som inte bara anger radkontexten, utan även ett specifikt värde (filter) i radkontexten.

Filterkontexten är enkel att upptäcka i pivottabeller. Om du till exempel lägger till TotalCost i området Värden och sedan lägger till Year och Region i Rad eller Kolumner, definierar du en filterkontext som väljer ut en delmängd data baserat på ett visst år och en viss region.

Varför är filterkontext så viktigt att DAX? Eftersom medan filterkontext kan enklast tillämpas genom att lägga till kolumnen och radetiketter och utsnitt i en pivottabell, filterkontext också kan användas i en DAX-formel genom att definiera ett filter med hjälp av funktioner, till exempel alla, relaterad, FILTER, BERÄKNA genom relationer och andra mått och kolumner. Till exempel du nu ska vi titta på följande formel i ett mått som heter StoreSales:

Formel

Som du ser är den här formeln mer komplex än några av de formler som vi har tittat på. För att formeln ska bli lättare att förstå kan vi dela upp den, på samma sätt som vi har gjort med andra formler.

Den här formeln innehåller följande syntaxelement:

  1. Det mått storesales, följt av ett kolon:.

  2. Likhetsteckenoperatorn (=) anger början av formeln.

  3. Funktionen CALCULATE utvärderar ett uttryck, som ett argument, i en kontext som modifieras av de angivna filtren.

  4. Parenteser, (), omger ett eller flera argument.

  5. Ett mått [Sales] i samma tabell som ett uttryck. Försäljning-måtten med formeln: = SUM(FactSales[SalesAmount]).

  6. Filtren avgränsas med kommatecken (,).

  7. Kolumnen som formeln refererar till och ett specifikt värde, DimChannel[ChannelName] ="Store", som ett filter.

Den här formeln kommer att säkerställa att endast försäljning värden, som definieras av försäljning som ett filter beräknas endast för rader i kolumnen DimChannel [ChannelName] med värdet "Store", som ett filter.

Som du förstår är möjligheterna med att kunna definiera filterkontext i en formel enorma. Att kunna referera till ett visst värde i en relaterad tabell är bara ett exempel. Oroa dig inte om du inte förstår kontexter helt. Det blir lättare att förstå kontexter och varför de är så viktiga i DAX när du börjar skapa egna formler.

Snabba frågor om kontexter

  1. Vilka är de två typerna av kontexter?

  2. Vad är filterkontext?

  3. Vad är radkontext?

Du hittar svaren sist i det här avsnittet.

Sammanfattning

Nu när du har en grundläggande förståelse av de viktigaste begreppen i DAX kan börja du skapa DAX-formler för beräknade kolumner och mått på egen hand. DAX verkligen kan vara lite svårt att lära dig, men det finns många resurser tillgängliga för dig. Efter läsa igenom det här avsnittet några gånger och experimentera med några av dina egna formler och du kan läsa mer om andra DAX-begrepp och formler som kan hjälpa dig att hitta dina egna lösningar. Många DAX-resurser är tillgängliga för dig i Power Pivot hjälp, SQL Server Books Online, faktablad och bloggar från Microsoft och inledande BI-experter. DAX Resource Center Wiki (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) är en bra plats att börja. Referens för Data Analysis Expressions (DAX) är också en bra resurs. Se till att spara den i dina Favoriter.

Dokumentet DAX in the BI Tabular Model, som du kan hämta på http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409, innehåller mer detaljerad information om begreppen som beskrivs här och om många andra avancerade begrepp och formler. Detta white paper baseras på arbetsboken Contoso DAX Sample Formulas.xlsx som du redan har.

Svar på frågor

Syntax:

  1. Öppnar funktionen Infoga funktion.

  2. Hakparenteser ([]).

  3. =[UnitPrice] - [UnitCost]

Funktioner:

  1. En tabell och en kolumn.

  2. Ja. En formel kan innehålla upp till 64 kapslade funktioner.

  3. Textfunktioner.

Kontext:

  1. Radkontext och filterkontext.

  2. Ett eller flera filter i en beräkning som fastställer ett enstaka värde.

  3. Den aktuella raden.

Obs!: Ansvarsfriskrivning för maskinöversättning: Den här artikeln har översatts av ett datorsystem utan mänsklig inblandning. Microsoft erbjuder dessa maskinöversättningar för att hjälpa icke engelskspråkiga användare att ta del av information om Microsofts produkter, tjänster och tekniker. Eftersom artikeln är maskinöversatt kan den innehålla fel i ordval, syntax och grammatik.

Utöka dina 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.

×