Hurtigveiledning: Lære det grunnleggende om DAX på 30 minutter

Viktig: Denne artikkelen er maskinoversatt, se ansvarsfraskrivelsen. Du finner den engelske versjonen av artikkelen her som referanse.

Denne hurtigveiledningen er for nye brukere av Power Pivot i Excel eller tabellmodellprosjekter skrevet i SQL Server Data Tools. Meningen er at du skal få en hurtig og enkel innføring i hvordan du kan bruke DAX (Data Analysis Expressions) til å løse enkle problemer ved datamodellering og analyse. Dette emnet inneholder konseptuell informasjon, en serie med oppgaver du kan gjennomføre, og noen spørrekonkurranser for å teste det du har lært. Når du har gjennomført dette emnet, skal du ha en god forståelse av de mest grunnleggende konseptene i DAX.

Hva er DAX?

DAX er en samling med funksjoner, operatorer og konstanter som kan brukes i en formel, eller et uttrykk, til å beregne og returnere én eller flere verdier. Sagt på en enklere måte: DAX hjelper deg med å opprette ny informasjon fra data som allerede finnes i modellen.

Hvorfor er DAX så viktig?

Det er enkelt å opprette en arbeidsbok og importere data i den. Du kan til og med opprette pivottabeller eller pivotdiagrammer som viser viktig informasjon, uten å bruke DAX-formler. Men hva om du må analysere kritiske salgsdata på tvers av flere produktkategorier og for forskjellige datoområder? Eller hva om du trenger å kombinere viktige lagerbeholdningsdata fra flere tabeller i forskjellige datakilder? Med DAX-formler kan du gjøre dette, i tillegg til mye annet viktig. Ved å lære hvordan du oppretter effektive DAX-formler, kan du utnytte dataene på best mulig måte Når du får informasjonen du trenger, kan du begynne å løse reelle forretningsproblemer som virker inn på bunnlinjen. Dette er Business Intelligence, og DAX vil hjelpe deg med å komme dit.

Forutsetninger

Du er kanskje allerede kjent med å opprette formler i Microsoft Excel. Denne kunnskapen vil være nyttig når du skal forstå DAX, men selv om du ikke har erfaring med Excel-formler, vil konseptene beskrevet her hjelpe deg med å komme i gang med å opprette DAX-formler og løse reelle BI-problemer med én gang.

Vi skal fokus spesielt på forstå DAX-formler som brukes i beregninger. Du bør allerede være kjent med grunnleggende konsepter av både for beregnede kolonner og mål (også kalt beregnede felt) som er beskrevet i Power Pivot hjelp. Du bør også være kjent med Power Pivot i Excel redigering miljøet og verktøy.

Eksempelarbeidsbok

Den beste måten å lære seg DAX på er å opprette noen enkle formler, bruke dem med noen faktiske data og se resultatene selv. Eksemplene og oppgavene her bruker arbeidsboken Contoso Sample DAX Formulas.xlsx. Du kan laste ned arbeidsboken fra http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. Når arbeidsboken er lastet ned på datamaskinen, åpner du den og åpner deretter Power Pivot-vinduet.

La oss komme i gang!

Vi vil legge hovedvekten på tre svært viktige, fundamentale konsepter i DAX: syntaks, funksjoner og kontekst. Det finnes selvsagt andre viktige konsepter i DAX, men ved å forstå disse tre konseptene får du det beste fundamentet for å utvikle DAX-kompetansen videre.

Syntaks

La oss se på DAX-formelsyntaksen før du oppretter egne formler. Syntaks omfatter de forskjellige elementene som utgjør en formel, eller hvordan formelen skrives, sagt på en enklere måte. La oss for eksempel se på en enkel DAX-formel som brukes til å opprette nye data (verdier) for hver rad i en beregnet kolonne, kalt Margin, i en FactSales-tabell: (tekstfargene i formelen er bare til illustrasjonsformål)

Formel for beregnet kolonne

Syntaksen for denne formelen inneholder følgende elementer:

  1. Likhetstegnet (=) indikerer starten på formelen, og når denne formelen beregnes, returnerer den et resultat eller en verdi. Alle formler som beregner en verdi, begynner med et likhetstegn.

  2. Den refererte kolonnen [SalesAmount] inneholder verdiene vi vil bruke til å trekke fra. En kolonnereferanse i en formel er alltid omgitt av klammeparenteser []. I motsetning til Excel-formler, som refererer til en celle, refererer en DAX-formel alltid til en kolonne.

  3. Den matematiske operatoren subtraksjon (-).

  4. Den refererte kolonnen [TotalCost] inneholder verdiene vi vil trekke fra verdiene i kolonnen [SalesAmount].

Når du skal prøve å forstå hvordan du leser en DAX-formel, er det ofte nyttig å bryte ned hvert av elementene til et språk du tenker og snakker hver dag. Du kan for eksempel lese denne formelen slik:

i den FactSales tabell, for hver rad i den beregnede kolonnen Margin, beregnes (=) en verdi ved å subtrahere (-) verdier i den [ Totalpris ]-kolonnen fra verdiene i den [ Salgsbeløp ] kolonne.

La oss ta en titt på en annen type formelen, som brukes i et mål:

Formel for beregnet kolonne

Denne formelen inneholder følgende syntakselementer:

  1. Mål navnet Sum of Sales Amount. Formler for målinger kan inkludere navnet mål, etterfulgt av et kolon, etterfulgt av beregningsformelen.

  2. Likhetstegnet (=) indikerer begynnelsen på beregningsformelen. Når den beregnes, returnerer den et resultat.

  3. SUM-funksjonen legger sammen alle tallene i kolonnen [SalesAmount]. Du skal lære mer om funksjoner senere.

  4. Parenteser () omgir ett eller flere argumenter. Alle funksjoner krever minst ett argument. Et argument sender en verdi til en funksjon.

  5. Den refererte tabellen FactSales.

  6. Den refererte kolonnen [SalesAmount] i tabellen FactSales. Med dette argumentet vet SUM-funksjonen hvilken kolonne som skal aggregeres for å beregne en sum.

Du kan lese denne formelen slik:

For den mål kalt Sum of Sales Amount, beregnes (=) summen av verdiene i den [ SalesAmount ]-kolonnen i den FactSales tabell.

Når det plasseres til verdiene bildeområdet i en feltliste for pivottabell, denne mål beregner og returnerer verdier som er definert av hver celle i pivottabellen, for eksempel mobiltelefoner i USA.

Legg merke til at det finnes enkelte forskjeller mellom denne formelen og formelen vi brukte for den beregnede kolonnen Margin. Legg spesielt merke til at vi innførte en funksjon, SUM. Funksjoner er forhåndsdefinerte formler som gjør det enklere å utføre kompliserte beregninger og manipuleringer med tall, datoer, klokkeslett, tekst og mer. Du skal lære mer om funksjoner senere.

I motsetning til den beregnede kolonnen Margin tidligere, ser du kolonnen [SalesAmount] ble foranstilt i tabellen FactSales som kolonnen tilhører. Dette kalles en fullstendig kolonnenavn ved at den inneholder navnet på kolonnen som begynner med tabellnavnet. Kolonner som det refereres til i samme tabell krever ikke tabellnavnet inkluderes i formelen. Dette kan gjøre lang formler som refererer til mange kolonner blir kortere og enklere å lese. Men er det god praksis å inkludere alltid tabellnavnet i mål formler, selv når du er i samme tabell.

Merknad: Hvis tabellnavnet inneholder mellomrom, reserverte nøkkelord eller tegn som ikke er tillatt, må du sette navnet i enkle anførselstegn. Du må også angi tabellnavn i anførselstegn hvis navnet inneholder tegn som ikke finnes i ANSI-settet med alfanumeriske tegn, uansett om tegnsettet støttes i de nasjonale innstillingene som brukes på systemet, eller ikke.

Det er svært viktig å bruke riktig syntaks i formlene. Hvis syntaksen ikke er riktig, returneres en syntaksfeil i de fleste tilfeller. I andre tilfeller kan syntaksen være riktig, men de returnerte verdiene er kanskje ikke hva du forventer. Power Pivot (og SQL Server Data Tools) inkluderer IntelliSense – en funksjon som brukes til å opprette syntaktisk riktige formler ved å hjelpe deg med å velge riktige elementer.

La oss opprette en enkel formel. Denne oppgaven gir deg bedre forståelse av formelsyntaks og hvordan IntelliSense-funksjonen på formellinjen kan hjelpe deg.

Oppgave: Opprette en enkel formel for en beregnet kolonne

  1. Hvis du ikke allerede er i Power Pivot-vinduet i Excel, på den Power Pivot båndet, klikk Power Pivot vinduet.

  2. Klikk tabellen (fanen) FactSales i Power Pivot-vinduet.

  3. Bla til kolonnen helt til høyre, og klikk deretter Legg til kolonne i kolonneoverskriften.

  4. Klikk på formellinjen langs toppen av modellutformervinduet.

    Formellinjen i PowerPivot

    Markøren vises nå på formellinjen. På formellinjen kan du skrive en formel for en beregnet kolonne eller et beregnet felt.

    La oss bruke et øyeblikk til å se på de tre knappene til venstre for formellinjen.

    Formellinje

    Når markøren er aktiv på formellinjen, blir disse tre knapene aktive. Knappen til venstre, X, er ganske enkelt en avbrytingsknapp. Det er bare å klikke den. Markøren vises ikke lenger på formellinjen, og avbrytingsknappen og avmerkingsknappen vises heller ikke. Klikk på formellinjen på nytt. Avbrytingsknappen og avmerkingsknappen vises nå på nytt. Dette betyr at du er klar til å begynne med å skrive inn en formel.

    Avmerkingsknappen er knappen for å kontrollere formelen. Den gjør ikke noe særlig før du har skrevet inn en formel. Vi skal komme tilbake til dette om litt.

    Velg Fx -knappen. Ser du at en ny dialogboks vises; dialogboksen Sett inn funksjon. Dialogboksen Sett inn funksjon er den enkleste måten å begynne å skrive inn en DAX-formel. Vi skal legge til en funksjon i en formel når vi opprette en måling litt senere, men denne gangen du trenger ikke å legge til en funksjon i formel for beregnet kolonne. Gå fremover og lukke dialogboksen Sett inn funksjon.

  5. Skriv inn et likhetstegn = på formellinjen, og skriv deretter inn en venstre klammeparentes [. Du ser at et lite vindu vises med alle kolonnene i tabellen FactSales. Slik virker IntelliSense.

    Siden beregnede kolonner alltid opprettes i den aktive tabellen du er i, er det ikke nødvendig å sette tabellnavnet foran kolonnenavnet. Fortsett med å bla nedover og dobbeltklikke [SalesQuantity]. Du kan også bla til ønsket kolonnenavn og trykke Tab.

    Markøren er nå aktiv til høyre for [SalesQuantity].

  6. Skriv inn et mellomrom og en subtraksjonsoperator - (et minustegn) og deretter nok et mellomrom.

  7. Nå, skriver du inn en annen venstre hakeparentes [. Denne gangen velger [ReturnQuantity] kolonnen, og trykk deretter Enter.

    Hvis du får en feil, må du se nøye på syntaksen. Om nødvendig må du sammenligne den med formelen i den beregnede kolonnen Margin beskrevet tidligere.

    Når du har trykket Enter for å fullføre formelen, vises ordet Beregner på statuslinjen nederst i Power Pivot-vinduet. Dette går raskt, selv om du akkurat har beregnet nye verdier for over tre millioner rader.

  8. Høyreklikk kolonneoverskriften, og endre navnet på kolonnen til NetSales.

Det var det! Du har akkurat opprettet en enkel, men likefullt svært kraftig DAX-formel. For hver rad i tabellen FactSales beregner formelen NetSales en verdi ved å trekke verdien i kolonnen [ReturnQuantity] fra verdien i kolonnen [SalesQuantity]. Legg merke til at vi akkurat sa "for hver row". Dette er et innblikk i et annet svært viktig konsept i DAX – radkontekst. Du skal lære mer om radkontekst senere.

Tips!: 

Noe spesielt viktige å forstå når du skriver en operatør i en DAX-formel er datatypen i argumentene du bruker. For eksempel hvis du skriver inn formelen nedenfor, = 1 og 2, verdien som returneres som skulle vært en tekstverdi av "12". Dette er fordi tegnet (&) operator for tekstoperatorer. DAX tolker denne formelen til å lese: beregne et resultat ved å gå gjennom verdien 1 som tekst og legge til verdien 2 som tekst. Hvis du skulle skriver du inn = 1 + 2, DAX leser denne formelen slik: beregne et resultat ved å ta den numeriske verdien 1 og legge til den numeriske verdien 2. Resultatet er selvfølgelig "3", en numerisk verdi. DAX beregner resulterende verdier avhengig av operatoren i formelen, ikke er basert på datatypen for kolonnene som brukes i argumentet. Datatyper i DAX er svært viktig, men utenfor omfanget av denne hurtigveiledningen. Hvis du vil lære mer om datatyper og operatorer i DAX-formler, kan du se DAX-referanse (http://go.microsoft.com/fwlink/?LinkId=239769 & clcid = 0x409) i Books Online.

La oss prøve en annen. Denne gangen skal du opprette et mål ved å skrive formelen og bruke IntelliSense. Ikke bekymre deg for mye Hvis du ikke forstår fullt ut formelen. Det er viktig her, er å lære hvordan du oppretter en formel ved hjelp av flere elementer sammen i riktig syntaks.

Oppgave: Opprette en mål-formel

  1. Klikk en tom celle i beregningsområdet i tabellen FactSales. Dette er området med tomme celler like under en tabell i Power Pivot-vinduet.

Beregningsområdet i PowerPivot

  1. Skriv inn navnet Salg forrige kvartal på formellinjen.

  2. Skriv inn et likhetstegn = for å begynne beregningsformelen.

  3. Skriv inn de første bokstavene, CAL, og dobbeltklikk deretter funksjonen du vil bruke. I denne formelen skal du bruke CALCULATE-funksjonen.

  4. Skriv inn en venstreparentes [(] for å starte argumentene som skal sendes til CALCULATE-funksjonen.

    Legg merke til at når du har skrevet inn venstreparentesen, vises de nødvendige argumentene for CALCULATE-funksjonen i IntelliSense. Du skal få lære om argumenter om litt.

  5. Skriv inn de første bokstavene i FactSales -tabellen, og dobbeltklikk deretter FactSales[i rullegardinlistenSalg].

  6. Skriv inn et komma (,) for å angi det første filteret, skriv inn PRE, og dobbeltklikk deretter PREVIOUSQUARTER-funksjonen.

    Når du har valgt PREVIOUSQUARTER-funksjonen, vises nok en venstreparentes, noe som indikerer at det er nødvendig med et nytt argument, denne gangen for PREVIOUSQUARTER-funksjonen.

  7. Skriv inn de første bokstavene, Dim, og dobbeltklikk deretter DimDate[DateKey].

  8. Lukk både argumentet som sendes til PREVIOUSQUARTER-funksjonen, og CALCULATE-funksjonen ved å skrive inn to høyreparenteser )).

    Formelen skal nå se slik ut:

    Salg forrige kvartal:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey]))

  9. Klikk knappen for å kontrollere formelen på formellinjen for å validere formelen. Hvis du får en feil, må du se gjennom hvert element i syntaksen.

Du gjorde det! Du opprettet nettopp et mål ved hjelp av DAX, og ikke en enkelt på som. Hva som vil gjøre denne formelen er beregne totalt salg for forrige kvartal, avhengig av filtre i en pivottabell eller et pivotdiagram.

Du har akkurat fått en innføring i flere viktige aspekter ved DAX-formler. For det første inkluderte formelen to funksjoner. Legg merke til at PREVIOUSQUARTER-funksjonen er nestet som et argument sendt til CALCULATE-funksjonen. DAX-formler kan inneholde opptil 64 nestede funksjoner. Det er usannsynlig at en formel noen gang vil inneholde så mange nestede funksjoner. En slik formel ville faktisk vært svært vanskelig å opprette og feilsøke, og den ville sannsynligvis ikke vært særlig rask heller.

I denne formelen brukte du også filtre. Filtre begrenser hva som skal beregnes. I dette tilfellet valgte du ett filter som et argument, som egentlig er en annen funksjon. Du skal lære mer om filtre senere.

Til slutt brukte du CALCULATE-funksjonen. Dette er en av de kraftigste funksjonene i DAX. Etter hvert som du skriver datamodeller og oppretter mer kompliserte formler, kommer du sannsynligvis til å bruke denne funksjonen mange ganger. Drøfting av CALCULATE-funksjonen er utenfor omfanget av denne hurtigveiledningen, men etter hvert som du blir mer kjent med DAX, bør du være spesielt oppmerksom på denne.

Merknad: For å kunne bruke funksjoner for tidsintelligens i DAX-formler må du vanligvis angi en unik datokolonne ved hjelp av dialogboksen Merk som datotabell. I arbeidsboken Contoso DAX Formula Samples.xlsx, er DateKey-kolonnen i DimDate-tabellen valgt som den unike datokolonnen.

Ekstra kreditt

Du kan be: "Hva er den enkleste DAX-formelen kan jeg opprette?" Svaret som er godt, 'formelen uten å måtte'. Og det er nøyaktig hva du kan gjøre ved å bruke en funksjon for standardaggregering i et mål. Nesten alle datamodellen må filtrere og beregne på samlede data. Hvis du for eksempel brukes SUMMER-funksjonen i Sum of Sales Amount mål du så tidligere til å legge sammen alle tallene i en bestemt kolonne. DAX omfatter flere andre funksjoner som samle verdier som skal delta fysisk. Du kan automatisk opprette formler ved hjelp av standard aggregeringer ved hjelp av Autosummer-funksjonen.

Oppgave for ekstra kreditt: Opprette en mål-formel ved hjelp av Autosummer-funksjonen

  1. Bla til kolonnen ReturnQuantity i tabellen FactSales, og klikk deretter kolonneoverskriften for å merke hele kolonnen.

  2. Klikk Autosummer-knappen på båndet i beregninger -gruppen i kategorien Hjem.

Autosummer i PowerPivot

  1. Klikk pil ned ved siden av Autosummer, og klikk deretter gjennomsnitt (Legg merke til de andre standardaggregering funksjoner du kan bruke, også).
    Umiddelbart, opprettes et nytt mål med navnet gjennomsnitt av ReturnQuantity: etterfulgt av formelen = AVERAGE([ReturnQuantity]).

Var ikke dette enkelt? Selvsagt vil ikke alle formler du oppretter, være like enkle. Men ved å bruke Autosummer-funksjonen kan du opprette raske og enkle formler ved hjelp av standard aggregeringsberegninger.

Dette skulle gi deg en rimelig god forståelse av syntaksen som brukes i DAX-formler. Du har også fått en innføring i noen virkelig stilige funksjoner som IntelliSense og Autosummer, som hjelper deg med å opprette raske, enkle og nøyaktige formler. Det er selvsagt mye mer du kan lære deg om syntaks. Et bra sted for å lære mer er DAX-referansen eller SQL Books Online.

Raske spørsmål om syntaks

  1. Hva gjør denne knappen på formellinjen?
    Funksjonsknapp

  2. Hva er et kolonnenavn i en DAX-formel alltid omgitt av?

  3. Hvordan vil du skriver en formel for følgende:
    i den DimProduct tabell, for hver rad i den UnitMargin beregnet kolonne, beregne en verdi ved å trekke verdiene i den UnitCost kolonnen fra verdiene i den Enhetspris kolonnen?

Du finner svarene ved slutten av dette emnet.

Funksjoner

Funksjoner er forhåndsdefinerte formler som utfører beregninger ved å bruke bestemte verdier, kalt argumenter, i en bestemt rekkefølge eller struktur. Argumenter kan være andre funksjoner, en annen formel, kolonnereferanser, tall, tekst, logiske verdier som TRUE eller FALSE eller konstanter.

DAX inkluderer følgende kategorier med funksjoner: dato og klokkeslett, informasjon, logiske, matematiske, statistiske, tekst og tidsintelligens. Hvis du er kjent med funksjoner i Excel-formler, vil mange av funksjonene i DAX virke å være like for deg. DAX-funksjoner er imidlertid unike på følgende måter:

  • En DAX-funksjon refererer alltid til hele kolonner eller tabeller. Hvis du bare vil bruke bestemte verdier fra en tabell eller kolonne, kan du legge til filtre i formelen.

  • Hvis du må tilpasse beregninger rad for rad, har DAX funksjoner som lar deg bruke gjeldende radverdi eller en relatert verdi som et slags argument, til å utføre beregninger som varierer etter kontekst. Du skal lære mer om kontekst senere.

  • DAX inneholder mange funksjoner som returnerer en tabell i stedet for en verdi. Tabellen vises ikke, men den brukes til å levere inndata til andre funksjoner. Du kan for eksempel hente en tabell og deretter telle de distinkte verdiene i den eller beregne dynamiske summer på tvers av filtrerte tabeller eller kolonner.

  • DAX inneholder mange funksjoner for tidsintelligens. Disse funksjonene lar deg definere eller merke datoområder og utføre dynamiske beregninger basert på disse. Du kan for eksempel sammenligne summer på tvers av parallelle perioder.

Noen ganger er det vanskelig å vite hvilke funksjoner du kanskje trenger å bruke i en formel. Power Pivot og tabellmodellutformeren i SQL Server Data Tools har funksjonen Sett inn funksjon, en dialogboks som hjelper deg med å velge funksjoner etter kategori, og som inneholder korte beskrivelser for hver funksjon.

Sett inn funksjon

La oss opprette en ny formel som inneholder en funksjon du skal velge ved hjelp av funksjonen Sett inn funksjon:

Oppgave: Legge til en funksjon i en formel ved hjelp av Sett inn funksjon

  1. Bla til kolonnen helt til høyre i FactSales-tabellen, og klikk deretter Legg til kolonne i kolonneoverskriften.

  2. Skriv inn et likhetstegn = på formellinjen.

  3. Klikk Sett inn funksjon. Sett inn funksjon Dette åpner dialogboksen Sett inn funksjon.

  4. Klikk listeboksen Velg en kategori i dialogboksen Sett inn funksjon. Som standard er Alle valgt, og alle funksjonene på fanen Alle er oppført nedenfor. Det er mange funksjoner, så du kan filtrere funksjonene for å gjøre det enklere å finne typen funksjon du ser etter.

  5. For denne formelen ønsker du å returnere data som allerede finnes i en annen tabell. Til dette skal du bruke en funksjon på fanen Filter. Klikk fanen Filter, og bla nedover og dobbeltklikk RELATED-funksjonen under Velg en funksjon. Klikk OK for å lukke dialogboksen Sett inn funksjon.

  6. Bruk IntelliSense til å finne og velge kolonnen DimChannel[ChannelName].

  7. Lukk formelen, og trykk Enter.

  8. Når du har trykket Enter for å fullføre formelen, vises ordet Beregner på statuslinjen nederst i Power Pivot-vinduet. Nå ser du at du akkurat har opprettet en ny kolonne i FactSales-tabellen med kanalinformasjon fra DimChannel-tabellen.

  9. Endre navnet på kolonne til Channel.

    Formelen skal se slik ut: =RELATED(DimChannel[ChannelName])

Du har akkurat fått en innføring i en annen svært viktig funksjon i DAX, RELATED-funksjonen. RELATED-funksjonen returnerer verdier fra en annen tabell. Du kan bruke RELATED så lenge det finnes en relasjon mellom tabellen du er i, og tabellen som inneholder verdiene du vil hente. Det er selvsagt store muligheter med RELATED-funksjonen. I dette tilfellet kan du nå inkludere salgskanalen for hvert salg i FactSales-tabellen. Du kan nå skjule DimChannel-tabellen fra listen over pivottabellfelt, noe som gjør det enklere å navigere og bare vise den viktigste informasjonen du virkelig trenger. Mye på samme måte som CALCULATE-funksjonen beskrevet tidligere er RELATED-funksjonen svært viktig, og du vil sannsynligvis bruke den mange ganger.

Som du kan se, kan funksjoner i DAX hjelpe deg med å opprette svært kraftige formler. Vi har bare tatt for oss det helt grunnleggende ved funksjoner. Etter hvert som DAX-kompetansen din øker, kommer du til å opprette formler med mange forskjellige funksjoner. Et av de beste stedene du kan lære detaljene om alle DAX-funksjonene, er DAX-referanse (Data Analysis Expressions).

Raske spørsmål om funksjoner

  1. Hva refererer en funksjon alltid til?

  2. Kan en formel inneholde flere funksjoner?

  3. Hvilken kategori med funksjoner ville du brukt til å sammenkjede to tekststrenger til én streng?

Du finner svarene ved slutten av dette emnet.

Kontekst

Kontekst er ett av de viktigste DAX-konseptene å forstå. Det finnes to typer kontekst i DAX: radkontekst og filterkontekst. Vi skal først se på radkontekst.

Radkontekst

Det er enklest å se på radkontekst som den gjeldende raden. Husker du den beregnede kolonnen Margin vi brukte tidligere da du lærte om syntaks? Formelen =[SalesAmount] - [TotalCost] beregner en verdi i Margin-kolonnen for hver rad i tabellen. Verdier for hver rad beregnes fra verdier i to andre kolonner, [SalesAmount] og [TotalCost] i den samme raden. DAX kan beregne verdiene for hver rad i Margin-kolonnen fordi det har konteksten: For hver rad henter det verdier fra [TotalCost]-kolonnen og trekker dem fra verdier i [SalesAmount]-kolonnen.

I den merkede cellen nedenfor ble verdien $49.54 i den gjeldende raden beregnet ved å trekke verdien $51.54 i [TotalCost]-kolonnen fra verdien $101.08 i [SalesAmount]-kolonnen.

Radkontekst i PowerPivot

Radkontekst gjelder ikke bare for beregnede kolonner. Radkontekst gjelder også når en formel som har en funksjon som gjelder filtre for å identifisere en enkelt rad i en tabell. Funksjonen gjelder arvbart en radkontekst for hver rad i tabellen der det er filtrert. Denne typen radkontekst gjelder oftest mål.

Filterkontekst

Filterkontekst er noe vanskeligere å forstå enn radkontekst. Det er lettest å se på filterkontekst som følgende: Ett eller flere filtre brukt i en beregning som regner ut et resultat eller en verdi.

Filterkontekst finnes ikke i stedet for radkontekst. Det brukes derimot i tillegg til radkontekst. Hvis du vil ytterligere avgrense verdiene som for eksempel skal inkluderes i en beregning, kan du bruke en filterkontekst som ikke bare spesifiserer radkonteksten, men som også spesifiserer bare en bestemt verdi (et filter) i denne radkonteksten.

Det er lett å oppdage filterkontekst i pivottabeller. Når du for eksempel legger til totale kostnader i Verdier-området og deretter legger til år og område i rader eller kolonner, definerer du en filterkontekst som velger et delsett med data basert på et gitt år og område.

Hvorfor er filterkontekst så viktig å DAX? Fordi mens filterkontekst kan enkelt brukes ved å legge til kolonne og radetiketter og slicere i en pivottabell, filterkontekst kan også brukes i en DAX-formel ved å definere et filter ved hjelp av funksjoner for eksempel alle, BESLEKTEDE, FILTRERING av CALCULATE, relasjoner og andre mål og kolonner. Hvis du for eksempel la oss se på følgende formel i et mål som heter StoreSales:

Formel

Denne formelen er helt klart mer komplisert enn enkelte av de andre formlene du har sett. Vi kan imidlertid bryte ned formelen for å forstå den bedre, mye på samme måte som vi har gjort med andre formler.

Denne formelen inneholder følgende syntakselementer:

  1. Mål navnet StoreSales, fulgt av et kolon:.

  2. Likhetstegnet (=) indikerer begynnelsen på formelen.

  3. CALCULATE-funksjonen evaluerer et uttrykk, som et argument, i en kontekst som er endret av de angitte filtrene.

  4. Parenteser () omgir ett eller flere argumenter.

  5. Et mål [Sales] i samme tabell som et uttrykk. Salg har det formelen: = SUM(FactSales[SalesAmount]).

  6. Et komma (,) separerer hvert filter.

  7. Den refererte kolonnen og en bestemt verdi, DimChannel[ChannelName] ="Store", som et filter.

Denne formelen sikrer bare salg verdiene, definert av salg-mål som et filter, beregnes bare for rader i kolonnen DimChannel [ChannelName] med verdien "Store", som et filter.

Som du kan tenke deg, har du mange muligheter ved at du kan definere filterkontekst i en formel. Det å kunne referere bare til én bestemt verdi i en relatert tabell er bare ett slikt eksempel. Slapp av hvis du ikke forstår kontekst full ut med én gang. Etter hvert som du oppretter dine egne formler, vil du forstå kontekst bedre og hvorfor det er så viktig i DAX.

Raske spørsmål om kontekst

  1. Hva er de to konteksttypene?

  2. Hva er filterkontekst?

  3. Hva er radkontekst?

Du finner svarene ved slutten av dette emnet.

Sammendrag

Nå som du har en grunnleggende forståelse av de viktigste konsepter i DAX, kan du begynne å opprette DAX-formler for beregnede kolonner og mål på egen hånd. DAX virkelig kan være litt vanskelig å lære, men det er mange ressurser som er tilgjengelige for deg. Etter at lese gjennom emnet noen ganger, og eksperimentere med noen av dine egne formler, kan du lære mer om andre DAX-begreper og formler som kan hjelpe deg å løse bedriftens problemer. Mange DAX-ressurser er tilgjengelige for deg i Power Pivot hjelp, SQL Server Books Online, dokumentasjon og blogger fra både Microsoft og innledende BI-eksperter. DAX ressurs Center Wiki (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) er et flott sted å begynne. Data Analysis Expressions (DAX) referanse er også en god ressurs. Pass på å lagre den i Favoritter.

Hvitboken DAX i BI Tabular Model, tilgjengelig for nedlasting (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409) gir et mer detaljert innblikk i konseptene som er introdusert her, i tillegg til mange andre avanserte konsepter og formler. Denne hvitboken bruker også den samme Contoso DAX Sample Formulas.xlsx-arbeidsboken som du allerede har.

Svar på raske spørsmål

Syntaks:

  1. Åpner funksjonen Sett inn funksjon.

  2. Klammeparenteser [].

  3. =[UnitPrice] - [UnitCost]

Funksjoner:

  1. En tabell og en kolonne.

  2. Ja. En formel kan inneholde opptil 64 nestede funksjoner.

  3. Tekstfunksjoner.

Kontekst:

  1. Radkontekst og filterkontekst.

  2. Ett eller flere filtre i en beregning som regner ut én enkelt verdi.

  3. Gjeldende rad.

Merknad: Ansvarsfraskrivelse for maskinoversettelse: Denne artikkelen er oversatt av et datasystem i stedet for en oversetter. Microsoft tilbyr disse maskinoversettelsene slik at brukere som ikke snakker engelsk, får tilgang til innhold om Microsoft-produkter, -tjenester og –teknologier. Ettersom artikkelen er maskinoversatt, kan den inneholde feil i vokabular, syntaks eller grammatikk.

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×