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 kan du utføre dynamisk analyse, der resultatene av en formel kan endres for å gjenspeile gjeldende rad-eller celle merking og eventuelle relaterte data. Det er svært viktig å forstå kontekst og bruke kontekst effektivt til å bygge opp høy ytelse, dynamiske analyser og for feil søking av problemer i formler.

Denne delen definerer de ulike typene kontekst: rad kontekst, spørrings kontekst og filter kontekst. Det forklarer hvordan konteksten evalueres for formler i beregnede kolonner og pivottabeller.

Den siste delen av denne artikkelen inneholder koblinger til detaljerte eksempler som illustrerer hvordan resultatene av formler endres i henhold til konteksten.

Forstå kontekst

Formler i Power Pivot kan påvirkes av filtrene som brukes i en pivottabell, etter relasjoner mellom tabeller og filtre som brukes i formler. Konteksten er det som gjør det mulig å utføre dynamisk analyse. Forståelse av kontekst er viktig for bygging og for feil søking av formler.

Det finnes ulike typer kontekst: rad kontekst, spørrings kontekst og filter kontekst.

Rad kontekst kan ses på som gjeldende rad. Hvis du har opprettet en beregnet kolonne, består rad konteksten av verdiene i hver enkelt rad og verdier i kolonner som er relatert til gjeldende rad. Det finnes også enkelte funksjoner (tidligere og tidligste) som får en verdi fra den gjeldende raden, og deretter bruke denne verdien mens du utfører en operasjon over en hel tabell.

Spørrings kontekst henviser til delsett av data som er implisitt opprettet for hver celle i en pivottabell, avhengig av rad-og Kol onne overskriftene.

Filter kontekst er verdi settet som er tillatt i hver kolonne, basert på filter begrensninger som ble brukt på raden, eller som er definert av filter uttrykk i formelen.

Til toppen av siden

Rad kontekst

Hvis du oppretter en formel i en beregnet kolonne, vil rad konteksten for denne formelen inkludere verdiene fra alle Kol onnene i gjeldende rad. Hvis tabellen er relatert til en annen tabell, inneholder innholdet også alle verdiene fra den andre tabellen som er relatert til den gjeldende raden.

Anta for eksempel at du oppretter en beregnet kolonne, = [frakt kostnad] + [avgift],

, som legger sammen to kolonner fra samme tabell. Denne formelen oppfører seg som formler i en Excel-tabell, som automatisk refererer verdier fra samme rad. Legg merke til at tabeller er forskjellige fra områder: du kan ikke referere til en verdi fra raden før gjeldende rad ved hjelp av Range-notasjon, og du kan ikke referere til vilkårlige enkelt verdier i en tabell eller celle. Du må alltid arbeide med tabeller og kolonner.

Rad konteksten kommer automatisk etter relasjonene mellom tabeller for å bestemme hvilke rader i relaterte tabeller som er knyttet til gjeldende rad.

Følgende formel bruker for eksempel den relaterte funksjonen til å hente en avgifts verdi fra en relatert tabell, basert på området som ordren ble sendt til. Avgifts verdien bestemmes ved hjelp av verdien for region i gjeldende tabell, oppslag av området i den relaterte tabellen og henter deretter avgifts satsen for området fra den relaterte tabellen.

= [Frakt] + relatert (' region ' [mva])

Denne formelen henter bare mva-satsen for gjeldende område fra region-tabellen. Du trenger ikke å vite eller angi nøkkelen som kobler tabellene.

Flere rad kontekster

I tillegg inneholder DAX funksjoner som gjentar beregninger over en tabell. Disse funksjonene kan ha flere gjeldende rader og gjeldende rad kontekster. I programmerings termer kan du opprette formler som repeteres i en indre og ytre løkke.

La oss for eksempel si at arbeids boken inneholder en produkter -tabell og en salgs tabell. Du vil kanskje gå gjennom hele salgs tabellen, som er full av transaksjoner som involverer flere produkter, og finne det største antallet som er bestilt for hvert produkt i en hvilken som helst transaksjon.

I Excel krever denne beregningen en serie med mellom liggende Sammendrag, som må bygges på nytt hvis dataene endres. Hvis du er en privilegert bruker av Excel, kan det hende at du kan bygge matriseformler som vil gjøre jobben. Du kan også skrive nestede under merker i en Relasjons database.

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

= MAXX (FILTER (salg; [ProdKey] = tidligere ([ProdKey])); salg [OrderQty])

Hvis du vil ha en detaljert gjennomgang av denne formelen, kan du se den tidligere.

I korte lagrer den tidligere funksjonen rad konteksten fra operasjonen som var før den gjeldende operasjonen. Til enhver tid lagrer funksjonen i minne to sett med kontekst: ett sett med kontekst representerer gjeldende rad for den indre løkken i formelen, og et annet sett med kontekst representerer gjeldende rad for den ytre løkken i formelen. DAX automatisk mates verdier mellom de to løkkene slik at du kan opprette komplekse mengder.

Til toppen av siden

Spørrings kontekst

Spørrings kontekst henviser til delsett av data som er implisitt hentet for en formel. Når du slipper et mål eller et annet verdi felt i en celle i en pivottabell, undersøker Power Pivot-motoren rad-og Kol onne overskrifter, slicere og rapport filtre for å fastslå konteksten. Deretter gjør Power Pivot de nødvendige beregningene for å fylle ut hver celle i pivottabellen. Settet med data som hentes, er spørrings konteksten for hver celle.

Fordi konteksten kan endres avhengig av hvor du plasserer formelen, endres resultatet av formelen også avhengig av om du bruker formelen i en pivottabell med mange grupperinger og filtre, eller i en beregnet kolonne uten filtre og minimal kontekst.

Anta for eksempel at du oppretter denne enkle formelen som summerer verdiene i fortjeneste -kolonnen i salg -tabellen: = Summer (salg [fortjeneste]).

Hvis du bruker denne formelen i en beregnet kolonne i salgs tabellen, vil resultatene for formelen være den samme for hele tabellen, fordi spørrings konteksten for formelen alltid er hele data settet i salg -tabellen. Resultatene vil ha fortjeneste for alle områder, alle produkter, alle år og så videre.

Du vil imidlertid vanligvis ikke se det samme resultatet hundrevis av ganger, men i stedet vil du få fortjenesten for et bestemt år, et bestemt land eller område, et bestemt produkt eller noen kombinasjon av disse, og deretter få en samlet sum.

I en pivottabell er det enkelt å endre konteksten ved å legge til eller fjerne Kol onne-og rad overskrifter og ved å legge til eller fjerne slicere. Du kan opprette en formel som den som er ovenfor, i et mål, og deretter slippe den i en pivottabell. Når du legger til kolonne-eller rad overskrifter i pivottabellen, endrer du spørrings konteksten der målet evalueres. Slice-og filtrerings operasjoner påvirker også konteksten. Den samme formelen, som brukes i en pivottabell, evalueres derfor i en annen spørrings kontekst for hver celle.

Til toppen av siden

Filtrer kontekst

Filter konteksten legges til når du angir filter begrensninger på verdi settet som er tillatt i en kolonne eller tabell, ved å bruke argumenter i en formel. Filter konteksten gjelder på toppen av andre kontekster, for eksempel rad kontekst eller spørrings kontekst.

En pivottabell beregner for eksempel verdiene for hver celle basert på rad-og Kol onne overskrifter, som beskrevet i forrige del i spørrings konteksten. I målene eller beregnede Kol onnene som du legger til i pivottabellen, kan du imidlertid angi filter uttrykk for å kontrollere verdiene som brukes av formelen. Du kan også selektivt fjerne filtrene for bestemte kolonner.

Hvis du vil ha mer informasjon om hvordan du oppretter filtre i formler, kan du se filter funksjonene.

For et eksempel på hvordan filtre kan tømmes for å opprette total Summer, kan du se alle.

Hvis du vil ha eksempler på hvordan du selektivr og bruker filtre i formler, kan du se ALLEXCEPT-funksjonen.

Derfor må du se gjennom definisjonen av mål eller formler som brukes i en pivottabell, slik at du er klar over filter konteksten når du tolker resultatene av formler.

Til toppen av siden

Bestemme kontekst i formler

Når du oppretter en formel, kontrolleres Power Pivot for den generelle syn tak sen for Excel først, og deretter kontrolleres navnene på Kol onnene og tabellene som du oppgir, mot mulige kolonner og tabeller i gjeldende kontekst. Hvis Power Pivot ikke finner Kol onnene og tabellene som er angitt av formelen, vil du få en feil melding.

Konteksten fastslås som beskrevet i de foregående inndelingene ved å bruke de tilgjengelige tabellene i arbeids boken, alle relasjoner mellom tabellene og eventuelle filtre som er brukt.

Hvis du for eksempel nettopp har importert noen data til en ny tabell og ikke har brukt noen filtre, er hele Kol onne settet i tabellen en del av gjeldende kontekst. Hvis du har flere tabeller som er koblet sammen av relasjoner, og du arbeider i en pivottabell som er filtrert ved å legge til Kol onne overskrifter og bruke slicere, inneholder konteksten de relaterte tabellene og eventuelle filtre på dataene.

Kontekst er et kraftig begrep som også kan gjøre det vanskelig å feilsøke formler. Vi anbefaler at du begynner med enkle formler og relasjoner for å se hvordan konteksten fungerer, og deretter begynner å eksperimentere med enkle formler i pivottabeller. Følgende del gir deg også noen eksempler på hvordan formler bruker forskjellige typer kontekst til å returnere resultater dynamisk.

Eksempler på kontekst i formler

  • RELATERT-funksjonen utvider konteksten til gjeldende rad for å inkludere verdier i en relatert kolonne. Dette lar deg utføre oppslag. Eksemplet i dette emnet viser samhandlingen for filtrering og rad kontekst.

  • FILTER-funksjonen lar deg angi hvilke rader som skal inkluderes i den gjeldende konteksten. Eksemplene i dette emnet illustrerer også hvordan du bygger inn filtre i andre funksjoner som utfører mengder.

  • ALL-funksjonen angir kontekst i en formel. Du kan bruke det til å overstyre filtre som brukes som resultat av spørrings kontekst.

  • Med ALLEXCEPT-funksjonen kan du fjerne alle filtre unntatt en du angir. Begge emnene inneholder eksempler som veileder deg gjennom å bygge formler og forstå kompliserte kontekster.

  • De tidligere og eldste funksjonene lar deg gjenta gjennom tabeller ved å utføre beregninger, mens du refererer til en verdi fra en intern løkke. Hvis du er kjent med konseptets rekursjon og indre og ytre løkker, kan du sette pris på kraften som de tidligere og første funksjonene gir. Hvis du ikke har brukt disse konseptene, bør du følge Fremgangs måten 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 av relasjoner. Denne delen kan være nyttig hvis du har arbeids bøker med flere tabeller og komplekse formler og vil ha hjelp til å forstå resultatene.

Hvis du er ny for relasjons data begreper, anbefaler vi at du først leser inn Introduksjons emnet, Oversikt over relasjoner.

Referanseintegritet og Power Pivot relasjoner

Power Pivot krever ikke at referanseintegritet håndheves mellom to tabeller for å definere en gyldig relasjon. I stedet opprettes en tom rad på «én»-siden i hver én-til-mange-relasjon, og brukes til å håndtere alle rader som ikke Sams varer, fra den relaterte tabellen. Det fungerer effektivt som en SQL OUTER JOIN.

Hvis du grupperer data etter den ene siden av relasjonen i pivottabeller, blir alle unike data på mange-siden i relasjonen gruppert sammen og vil bli inkludert i totaler med en tom rad overskrift. Den tomme overskriften Sams varer omtrent med «ukjent medlem».

Forstå det ukjente medlemmet

Konseptet med ukjent medlem er sannsynligvis kjent for deg hvis du har arbeidet med flerdimensjonale database systemer, for eksempel SQL Server Analysis Services. Hvis termen er ny for deg, forklarer følgende eksempel hva det ukjente medlemmet er, og hvordan det påvirker beregninger.

Anta at du oppretter en beregning som summerer månedlige salg for hver butikk, men at en kolonne i salg -tabellen mangler en verdi for butikk navnet. Om at tabellene for store og salg er koblet sammen med butikk navnet, hva vil du forvente å skje i formelen? Hvordan skal Pivottabell-gruppen eller vise salgs tall som ikke er relatert til en eksisterende butikk?

Dette problemet er en vanlig i data lagre, der store tabeller med fakta data må være logisk relatert til dimensjons tabeller som inneholder informasjon om butikker, regioner og andre attributter som brukes til å kategorisere og beregne fakta. Eventuelle nye fakta som ikke er relatert til en eksisterende enhet, blir midlertidig tilordnet til det ukjente medlemmet for å løse problemet. Dette er årsaken til at ikke-relaterte opplysninger vises gruppert i en pivottabell under en tom overskrift.

Behandling av tomme verdier vs. den tomme raden

Tomme verdier er forskjellig fra de tomme radene som er lagt til for å få plass til det ukjente medlemmet. Den tomme verdien er en spesiell verdi som brukes til å representere nuller, tomme strenger og andre manglende verdier. Hvis du vil ha mer informasjon om den tomme verdien, samt andre DAX-datatyper, kan du se data typer i data modeller.

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.

×