Office
Logg på

Kontekst i DAX-formler

Obs!:  Vi ønsker å gi deg det nyeste hjelpeinnholdet så raskt som mulig, på ditt eget språk. Denne siden er oversatt gjennom automatisering og kan inneholde grammatiske feil eller unøyaktigheter. Formålet vårt er at innholdet skal være nyttig for deg. Kan du fortelle oss om informasjonen var nyttig for deg nederst på denne siden? Her er den engelske artikkelen for enkel referanse.

Ved hjelp av kontekst er det mulig å utføre dynamisk analyse, der resultatene av en formel kan endre seg for å reflektere gjeldende rad- eller celleutvalg i tillegg til eventuelle relaterte data. Det er svært viktig å forstå og kunne bruke kontekst på en effektiv måte når du skal bygge formler med høy ytelse, dynamiske analyser og feilsøke problemer i formler.

Denne delen definerer ulike typer kontekst: radkontekst, spørringskontekst og filterkontekst. Den inneholder informasjon om hvordan kontekst skal evalueres for formler i beregnede kolonner og pivottabeller.

Nederst i denne artikkelen finner du koblinger til detaljerte eksempler som illustrerer hvordan formelresultatene endres etter konteksten.

Forstå kontekst

Formler i Power Pivot kan påvirkes av filtre i en pivottabell, relasjoner mellom tabeller og filtre i formler. Kontekst er som gjør det mulig å utføre dynamisk analyser. Forstå kontekst er viktig for bygning og feilsøking av formler.

Det finnes ulike typer kontekst: radkontekst, spørringskontekst og filterkontekst.

Radkontekst kan ses på som "gjeldende rad." Hvis du har opprettet en beregnet kolonne, består radkontekst av verdiene i hver enkelt rad og verdier i kolonner som er relatert til gjeldende rad. Det finnes også noen funksjoner (EARLIER-funksjonen og EARLIEST-funksjonen) som får en verdi fra den gjeldende raden, og deretter bruke denne verdien når du utfører en operasjon over en hel tabell.

Spørringskontekst refererer til delsettet med data som opprettes implisitt for hver celle i en pivottabell, avhengig av rad- og kolonneoverskrifter.

Filterkontekst er settet med verdier som er tillatt i hver kolonne, basert på filter begrensninger som ble brukt til raden eller som er definert av filteruttrykk i formelen.

Til toppen av siden

Radkontekst

Hvis du oppretter en formel i en beregnet kolonne, inkluderer radkontekst for denne formelen verdier fra alle kolonner i gjeldende rad. Hvis tabellen er relatert til en annen tabell, inneholder innholdet også alle verdiene fra den andre tabellen som er relatert til gjeldende rad.

Hvis du for eksempel anta at du oppretter en beregnet kolonne, = [Frakt] + [skatt],

, som legger sammen to kolonner fra den samme tabellen. Denne formelen fungerer som formler i en Excel-tabell, som automatisk refererer til verdier i samme rad. Vær oppmerksom på at tabeller ikke fungerer på samme måte som områder: Du kan ikke referere til en verdi fra raden før gjeldende rad ved hjelp av områdenotasjon, og du kan ikke referere til en tilfeldig enkeltverdi i en tabell eller celle. Du må alltid arbeide med tabeller og kolonner.

Tabellrelasjoner etterfølges automatisk av radkontekst for å fastslå hvilke rader som er tilknyttet gjeldende rad, i relaterte tabeller.

Formelen nedenfor bruker for eksempel RELATED-funksjonen til å hente en avgiftsverdi fra en relatert tabell basert på området ordren ble send til. Avgiftsverdien fastsettes ved å bruke verdien for område i den gjeldende tabellen, slå opp området i den relaterte tabellen og deretter hente avgiftssatsen for området fra den relaterte tabellen.

= [Frakt] + RELATED('Region'[TaxRate])

Denne formelen henter ganske enkelt avgiftssatsen for det gjeldende området fra Region-tabellen. Du trenger ikke å kjenne eller angi nøkkelen som kobler sammen tabellene.

Kontekst for flere rader

I tillegg inneholder DAX funksjoner som itererer beregninger i en tabell. Disse funksjonene kan ha flere gjeldende rader og gjeldende radkontekster. Med programmeringsterminologi vil det si at du kan opprette formler som gjentas i en indre eller ytre løkke.

Tenk deg at arbeidsboken inneholder en produkter -tabellen og en Salg -tabellen. Du kanskje vil gå gjennom hele salgstabellen, som er full av transaksjoner som involverer flere produkter, og Finn største antallet bestilt for hvert produkt i en hvilken som helst én transaksjon.

I Excel krever denne beregningen en serie med mellomliggende summeringer, som ville krevd ny bygging hvis dataene ble endret. Hvis du er avansert Excel-bruker, vil du kanskje kunne bygge matriseformler som kunne utført denne oppgaven. Alternativt kan du skrive nestede underordnede SELECT-setninger i en relasjonsdatabase.

I DAX kan du imidlertid bygge én enkelt formel som returnerer riktig verdi, og resultatene oppdateres automatisk hver gang du legger til data i tabellene.

=MAXX(Filter(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

For en detaljert gjennomgang av denne formelen, kan du se EARLIER-funksjonen.

Kort fortalt lagrer EARLIER-funksjonen radkonteksten fra operasjonen før den gjeldende operasjonen. Denne funksjonen lagrer kontinuerlig to kontekstsett: et kontekstsett som representerer den gjeldende raden for den indre løkken i formelen, og et annet kontekstsett som representerer den gjeldende raden for den ytre løkken i formelen. DAX leverer automatisk verdier mellom de to løkkene, slik at du kan opprette komplekse aggregeringer.

Til toppen av siden

Spørringskontekst

Spørringskontekst refererer til delsettet med data som hentes implisitt for en formel. Når du slipper en mål- eller andre verdifelt i en celle i en pivottabell, undersøker Power Pivot motoren rad- og kolonneoverskrifter, slicere og rapportfiltre for å bestemme konteksten. Power Pivot gjør deretter de nødvendige beregningene til å fylle ut hver celle i pivottabellen. Sett med data som er hentet er spørringskontekst for hver celle.

Siden konteksten endrer seg avhengig av hvor formelen plasseres, endrer resultatene av formelen seg også avhengig av om du bruker formelen i en pivottabell med mange grupperinger og filtre, eller i en beregnet kolonne uten filtre og med minimal kontekst.

Hvis du for eksempel anta at du oppretter denne enkle formelen som summerer verdiene i Profit -kolonnen i Sales -table:=SUM('Sales'[Profit]).

Hvis du bruker denne formelen i en beregnet kolonne i Sales -tabellen, vil resultatet for formelen være det samme for hele tabellen, fordi spørringskontekst for formelen er alltid hele datasettet i Sales -tabellen. Resultatene må fortjeneste for alle områder, alle produkter, alle år, og så videre.

Vanligvis er det ikke ønskelig å se de samme resultatene hundrevis av ganger. I stedet kan du vise fortjenesten for et bestemt år, et bestemt land eller område, et bestemt produkt, eller en kombinasjon av disse, og deretter vise totalsummen.

Det er enkelt å endre kontekst ved å legge til eller fjerne kolonne- og radoverskrifter og ved å legge til eller fjerne slicere i en pivottabell. Du kan opprette en formel som det ovenfor, i et mål, og slipp den i en pivottabell. Når du legger til kolonne- eller radoverskrifter i pivottabellen, kan du endre spørringskontekst som mål evalueres. Oppstykking og filtrering operasjoner også påvirke kontekst. Derfor vurderes samme formelen, som brukes i en pivottabell i en annen spørringskontekst for hver celle.

Til toppen av siden

Filterkontekst

Filterkontekst legges når du angir filteret begrensninger på settet med verdier som er tillatt i en kolonne eller tabell, ved hjelp av argumentene til en formel. Filterkontekst gjelder oppå andre kontekster, for eksempel radkontekst eller spørringskontekst.

Hvis du for eksempel beregner en pivottabell verdier for hver celle som er basert på rad- og kolonneoverskrifter, som beskrevet i forrige del på spørringskontekst. I mål og beregnede kolonner som du har lagt til i pivottabellen, kan du imidlertid angi filteruttrykk for å styre verdiene som brukes i formelen. Du kan også selektivt fjerne filtrene på bestemte kolonner.

Hvis du vil ha mer informasjon om hvordan du oppretter filtre i formler, kan du se Filterfunksjoner (DAX).

Et eksempel på hvordan filtre kan fjernes for å beregne totalsummer, kan du se ALL-funksjonen.

Eksempler på hvordan du fjerner selektivt og bruke filtre i formler, kan du se ALLEXCEPT-funksjonen.

Derfor må du gå gjennom definisjonen av mål og formler som brukes i en pivottabell slik at du er klar over filterkontekst når tolke formelresultatene.

Til toppen av siden

Fastsette kontekst i formler

Når du oppretter en formel, kontrollerer Power Pivot for Excel først generell syntaks. Deretter kontrolleres navnene på kolonnene og tabellene du oppgir, mot mulige kolonner og tabeller i den gjeldende konteksten. Hvis Power Pivot ikke finner kolonnene og tabellene som er angitt av formelen, vises en feilmelding.

Kontekst fastsettes som beskrevet i de foregående delene, ved å bruke de tilgjengelige tabellene i arbeidsboken, eventuelle relasjoner mellom tabellene og eventuelle filtre som er brukt.

Hvis du for eksempel nylig har importert data til en ny tabell og ikke har brukt filtre, er hele settet med kolonner i tabellen en del av den gjeldende konteksten. Hvis du har flere tabeller som er koblet ved hjelp av relasjoner, og du arbeider i en pivottabell som er filtrert ved å legge til kolonneoverskrifter og bruke slicere, vil konteksten inneholde de relaterte tabellene og eventuelle filtre på dataene.

Kontekst er et kraftig konsept som også kan gjøre det vanskelig å feilsøke formler. Vi anbefaler at du starter med enkle formler og relasjoner for å se hvordan kontekst fungerer, og deretter begynner å eksperimentere med enkle formler i pivottabeller. Delen nedenfor inneholder også eksempler på hvordan formler bruker ulike konteksttyper for å returnere resultater dynamisk.

Eksempler på kontekst i formler

  • RELATED-funksjonen utvider konteksten til den gjeldende raden slik at den inkluderer verdier i en relatert kolonne. Dette lar deg utføre oppslag. Eksemplet i dette emnet illustrerer interaksjonen mellom filtrering og radkontekst.

  • FILTER-funksjonen lar deg angi radene som skal inkluderes i den gjeldende konteksten. Eksemplene i dette emnet illustrerer også hvordan filtre bygges inn i andre funksjoner som utfører aggregeringer.

  • ALL-funksjonen angir kontekst i en formel. Du kan bruke den til å overstyre filtre som er brukt som resultat av spørringskontekst.

  • ALLEXCEPT-funksjonen lar deg fjerne alle filtre unntatt ett som du angir. Begge emnene inneholder eksempler som viser hvordan du bygger formler og får innsikt i komplekse kontekster.

  • Funksjonene EARLIER og EARLIEST lar deg utføre beregninger i tabeller i en løkke mens det refereres til en verdi fra en indre løkke. Hvis du er kjent med konseptet gjentakelse og indre og ytre løkker, vil du sette pris på de kraftige funksjonene EARLIER og EARLIEST. Hvis du ikke er kjent med disse konseptene, kan du følge trinnene i eksemplet nøye for å se hvordan indre og ytre kontekster brukes i beregninger.

Til toppen av siden

Referanseintegritet

Denne delen tar for seg noen avanserte begreper relatert til manglende verdier i Power Pivot-tabeller som er koblet sammen via relasjoner. Informasjonen kan være nyttig hvis du har arbeidsbøker med flere tabeller og komplekse formler, og du vil ha hjelp til å forstå resultatene.

Hvis du har kjennskap til relasjonsdatabegreper, anbefaler vi at du først leser innledningsemnet Oversikt over relasjoner.

Referanseintegritet og Power Pivot-relasjoner

Power Pivot krever ikke referanseintegritet mellom to tabeller for å kunne definere en gyldig relasjon. Det blir i stedet opprettet en blank rad på én-siden i hver én-til-mange relasjon, og denne raden brukes til å behandle alle ikke-samsvarende rader fra den relaterte tabellen. Den fungerer i realiteten som en ytre kobling i SQL.

Hvis du i pivottabeller grupperer data etter én-siden i relasjonen, grupperes alle ikke-samsvarende data på mange-siden i relasjonen sammen og inkluderes i totaler med tomme radoverskrifter. Den tomme overskriften tilsvarer omtrent "det ukjente medlemmet".

Forstå det ukjente medlemmet

Du har sannsynligvis kjennskap til begrepet om det ukjente medlemmet hvis du har arbeidet med flerdimensjonale databasesystemer, for eksempel SQL Server Analysis Services. Hvis begrepet er nytt for deg, beskriver eksemplet nedenfor hva det ukjente medlemmet er og hvordan det påvirker beregninger.

Anta at du oppretter en beregning som summerer månedlig salg for hver butikk, men en kolonne i salgstabellen mangler en verdi for store navnet. Ettersom som er koblet tabellene for lagring og Salg av store navnet, hva du forventer å oppstå i formelen? Hvordan skal pivottabellen gruppere eller vise salgstallene som ikke er relatert til en eksisterende store?

Dette er et vanlig problem i datavarehus, der store tabeller med faktadata må være logisk relatert til dimensjonstabeller som inneholder informasjon om butikker, områder og andre attributter som brukes til å kategorisere og beregne fakta. Problemet kan løses ved at eventuelle nye fakta som ikke er relatert til en eksisterende entitet, tilordnes midlertidig til det ukjente medlemmet. Dette er årsaken til at fakta som ikke er relatert til en eksisterende entitet, vises gruppert i en pivottabell under en tom overskrift.

Behandling av tomme verdier kontra tomme rader

Tomme verdier er forskjellig fra de tomme radene som blir lagt til å få plass til det ukjente medlemmet. Tom verdi er en spesiell verdi som brukes til å representere nullverdier, tomme strenger og andre manglende verdier. Hvis du vil ha mer informasjon om den tomme verdien, i tillegg til andre DAX-datatyper, kan du se datatyper i datamodeller.

Til toppen av siden

Bli bedre på Office
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.

×