Innledning

Fullført

Ved hjelp av DAX (Data Analysis Expressions) kan du legge til tre typer beregninger i den semantiske modellen:

  • Beregnede tabeller
  • Beregnede kolonner
  • Mål

Obs!

DAX kan også brukes til å definere regler for sikkerhet på radnivå (RLS), som er uttrykk som håndhever filtre til fordel for modelltabeller. Reglene ansees likevel ikke som modellberegninger, og gjelder dermed ikke i denne modulen. For mer informasjon kan du se Sikkerhet på radnivå (RLS) med Power BI.

Beregnede tabeller

Du kan skrive en DAX-formel for å legge til en beregnet tabell til modellen. Formelen kan duplisere elle transformere eksisterende modelldata eller opprette en serie data til å produsere en ny tabell. Beregnede tabelldata importeres alltid til modellen, slik at den øker lagringsstørrelsen for modellen og kan forlenge dataoppdateringstiden.

Obs!

En beregnet tabell kan ikke koble til eksterne data. Du må bruke Power Query til å utføre denne oppgaven.

Beregnede tabeller kan være nyttige i ulike scenarioer:

  • Datatabeller
  • Rollespilldimensjoner
  • Hva-skjer-hvis-analyse

Datotabeller

Datotabeller er nødvendige for å kunne bruke spesielle tidsfiltre kjent som tidsintelligens. DAX-tidsintelligensfunksjoner fungerer bare riktig når en datotabell er konfigurert. Når kildedataene ikke inneholder en datotabell, kan du opprette en som beregnede tabeller ved hjelp CALENDAR av DAX-funksjonene CALENDARAUTO .

Rollespilldimensjoner

Når to modelltabeller har flere relasjoner, kan det være fordi modellen har en rollespilldimensjon. Hvis du for eksempel har en tabell kalt Salg som inneholder to datokolonner, OrderDateKey og ShipDateKey, er begge kolonnene relatert til Dato-kolonnen i Dato-tabellen . I dette tilfellet beskrives Dato-tabellen som en rollespilldimensjon fordi den kan spille rollen som ordredato eller forsendelsesdato.

Bildet viser to tabeller: Salg og Dato. Det er to relasjoner mellom tabellene. Bare én relasjon er aktiv.

Microsoft Power BI-modeller tillater bare én aktiv relasjon mellom tabeller, som i modelldiagrammet er indikert som en heltrukket linje. Den aktive relasjonen brukes som standard til å overføre filtre, som i dette tilfellet vil være fra Dato-tabellen til OrderDateKey-kolonnen i Salg-tabellen . Alle gjenværende relasjoner mellom de to tabellene er inaktive. I et modelldiagram er relasjonene representert som stiplede linjer. Inaktive relasjoner brukes bare når de uttrykkelig blir forespurt i en beregnet formel ved hjelp USERELATIONSHIP av DAX-funksjonen.

Kanskje en bedre modellutforming kan ha to datotabeller, hver med en aktiv relasjon til Salg-tabellen . Derfor kan rapportbrukene filtrere etter bestillingsdato eller forsendelsesdato, eller begge samtidig. En beregnet tabell kan duplisere datotabelldataene for å opprette forsendelsesdatotabellen .

Bildet viser to tabeller: Salg og Dato. Det finnes én relasjon mellom tabellene Salg og Dato, og én relasjon mellom tabellene Salg og Forsendelsesdato. Begge relasjonene er aktive.

Hva-skjer-hvis-analyse

Power BI Desktop støtter en funksjon som heter Hva-skjer-hvis-parametere. Når du oppretter en hva-skjer-hvis-parameter, blir en beregnet tabell automatisk lagt til i modellen.

Med Hva-skjer-hvis-parametere kan rapportbrukere velge eller filtrere etter verdier som er lagret i den beregnede tabellen. Målformler kan bruke valgt(e) verdi(er) på en meningsfylt måte. For eksempel kan en hva-skjer-hvis-parameter tillate at rapportbrukeren velger en hypotetisk valutakurs, og et mål kan dele omsetningsverdiene (i en lokal valuta) med den valgte kursen.

Beregnede hva-skjer-hvis-tabeller er ikke relatert til andre modelltabeller fordi de ikke brukes til å overføre filtre. På grunn av dette blir de noen ganger kalt for frakoblede tabeller.

Beregnede kolonner

Du kan skrive en DAX-formel for å legge til en beregnet kolonne til modellen. Formelen evalueres for hver tabellrad og returnerer en enkeltverdi. Når den legges til i en tabell for importlagringsmodus, evalueres formelen når den semantiske modellen oppdateres, og den øker lagringsstørrelsen på modellen. Når du legger formelen til i en tabell for DirectQuery-lagringsmodus, blir den evaluert av den underliggende kildedatabasen når tabellen spørres.

I Felt-ruten blir beregnede kolonner forbedret med et spesialikon. Følgende eksempel viser en enkelt beregnet kolonne i Kunde-tabellen kalt Alder.

Bildet viser en del av Felt-ruten. I Kunde-tabeller er det flere felt. Én av dem er utsmykket med et spesialikon som indikerer at det er en beregnet kolonne.

Mål

Du kan skrive en DAX-formel for å legge til et mål i alle tabellene i modellen. Formelen er opptatt av å oppnå sammendrag over modelldataene. På samme måte som en beregnet kolonne, må formelen returnere en enkelt verdi. I motsetning til beregnede kolonner, som evalueres ved dataoppdateringstidspunkt, evalueres mål på spørringstidspunktet. Resultatene lagres aldri i modellen.

I Felt-ruten blir målene vist med kalkulatorikonet. Følgende eksempel viser tre mål i Salg-tabellen : Kostnader, Fortjeneste og Omsetning.

Bildet viser en del av Felt-ruten. I Salg-tabeller er det flere felt. Tre av dem er utsmykket med kalkulatorikonet, som indikerer at de er mål.

Noen ganger kan mål beskrives som eksplisitte mål. For å tydeliggjøre dette, vil vi si at eksplisitte mål er modellberegninger som er skrevet i DAX og som vanligvis blir referert til som enkle mål. Begrepet implisitte mål eksisterer også. Implisitte mål er kolonner summeres av visualobjekter på forenklede måter, som antall, sum, minimum, maksimum og så videre. Du kan identifisere implisitte mål i Felter-ruten fordi de vises med sigma-symbolet (∑ ).

Obs!

Alle kolonner kan summeres når de blir lagt til i en visuell effekt. Enten de vises med sigma-symbolet eller ikke, kan de konfigureres som implisitte mål når de legges til i et visualobjekt.

I tillegg finnes det ingen begreper som et beregnet mål i tabellmodellering. Ordet beregnet brukes til å beskrive beregnede tabeller og beregnede kolonner, som skiller dem fra tabeller og kolonner som kommer fra Power Query. Power Query har ikke begrepet eksplisitt mål.