Kontekst i DAX-formler

Bemærk!: Vi vil gerne give dig den mest opdaterede hjælp, så hurtigt vi kan, på dit eget sprog. Denne side er oversat ved hjælp af automatisering og kan indeholde grammatiske fejl og unøjagtigheder. Det er vores hensigt, at dette indhold skal være nyttigt for dig. Vil du fortælle os, om oplysningerne var nyttige for dig, nederst på denne side? Her er artiklen på engelsk så du kan sammenligne.

Kontekst gør det muligt at udføre dynamisk analyse, hvor resultatet af en formel kan ændres, så de afspejler den aktuelle række eller cellemarkering og også relaterede data. Forstå kontekst og brug af kontekst er meget vigtige for at opbygge avancerede formler, dynamiske analyser og for at foretage fejlfinding af problemer i formler.

Denne sektion definerer de forskellige kontekst typer: rækkekontekst, forespørgsels kontekst og filterkontekst. Den forklarer, hvordan konteksten evalueres for formler i beregnede kolonner og i pivottabeller.

Den sidste del af denne artikel indeholder links til detaljerede eksempler, der illustrerer, hvordan resultaterne af formler ændres ifølge kontekst.

Forstå kontekst

Formler i Power Pivot kan påvirkes af de filtre, der anvendes i en pivottabel, efter relationer mellem tabeller og efter filtre, der bruges i formler. Kontekst er det, der gør det muligt at udføre dynamisk analyse. Forstå konteksten er vigtig for at opbygge og foretage fejlfinding af formler.

Der er forskellige kontekst typer: rækkekontekst, forespørgsels kontekst og filterkontekst.

Rækkekontekst kan opfattes som "den aktuelle række". Hvis du har oprettet en beregnet kolonne, består række konteksten af værdierne i hver enkelt række og de enkelte værdier i kolonner, der er relateret til den aktuelle række. Der findes også nogle funktioner (tidligere og tidligste), som henter en værdi fra den aktuelle række og derefter bruger den pågældende værdi, når du udfører en handling over en hel tabel.

Forespørgsels kontekst refererer til det undersæt af data, der indirekte er oprettet for hver celle i en pivottabel, afhængigt af række-og kolonneoverskrifterne.

Filter konteksten er det sæt af værdier, der er tilladt i hver kolonne, baseret på filter begrænsninger, der blev anvendt på rækken eller defineret af filterudtryk i formlen.

Toppen af siden

Rækkekontekst

Hvis du opretter en formel i en beregnet kolonne, omfatter række konteksten for den pågældende formel værdierne fra alle kolonner i den aktuelle række. Hvis tabellen er relateret til en anden tabel, omfatter indholdet også alle værdierne fra den anden tabel, der er relateret til den aktuelle række.

Antag f. eks., at du opretter en beregnet kolonne, = [Fragt] + [skat],

, der lægger to kolonner sammen fra samme tabel. Denne formel fungerer som formler i en Excel-tabel, der automatisk refererer til værdier fra den samme række. Bemærk, at tabeller er forskellige fra områder: du kan ikke referere til en værdi fra rækken før den aktuelle række ved hjælp af område notation, og du kan ikke referere til en vilkårlig enkelt værdi i en tabel eller en celle. Du skal altid arbejde med tabeller og kolonner.

Rækkekontekst følger automatisk relationerne mellem tabeller for at bestemme, hvilke rækker i relaterede tabeller der er knyttet til den aktuelle række.

Følgende formel bruger for eksempel funktionen relateret til at hente en momsværdi fra en relateret tabel baseret på det område, som ordren blev sendt til. Moms værdien bestemmes ved at bruge værdien for område i den aktuelle tabel, søge efter området i den relaterede tabel og derefter hente momssatsen for det pågældende område fra den relaterede tabel.

= [Fragt] + relateret (' region ' [TaxRate])

Denne formel får blot moms satsen for det aktuelle område fra tabellen land. Du behøver ikke at kende eller angive den nøgle, der forbinder tabellerne.

Flere række kontekster

Derudover indeholder DAX funktioner, der gentages beregninger over en tabel. Disse funktioner kan have flere aktuelle rækker og aktuelle række kontekster. I programmerings vilkår kan du oprette formler, der recurse over en indre og ydre løkke.

Antag f. eks., at projektmappen indeholder en tabel over produkter og en salgs tabel. Det kan være en god ide at gennemgå hele tabellen salg, som er fuldt ud af transaktioner, der omfatter flere produkter, og Find det største antal, der er bestilt for hvert produkt i en hvilken som helst post.

I Excel kræver denne beregning en række mellemliggende opsummeringer, som skal genopbygges, hvis dataene er blevet ændret. Hvis du er superbruger af Excel, kan du muligvis oprette matrixformler, der ville udføre jobbet. Du kan også skrive indlejrede under valg i en relationel database.

Men med DAX kan du oprette en enkelt formel, der returnerer den korrekte værdi, og resultaterne opdateres automatisk, hver gang du føjer data til tabellerne.

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

Hvis du vil se en detaljeret gennemgang af denne formel, skal du se den tidligere.

Kort sagt gemmer den tidligere rækkekontekst fra den handling, der var før den aktuelle handling. Funktionen gemmer til enhver tid i hukommelsen to sæt kontekst: et sæt kontekst repræsenterer den aktuelle række for den inderste løkke i formlen, og et andet sæt kontekst repræsenterer den aktuelle række for den ydre løkke i formlen. DAX overfører automatisk værdier mellem de to løkker, så du kan oprette komplekse aggregeringer.

Toppen af siden

Forespørgsels kontekst

Forespørgsels kontekst refererer til det undersæt af data, der implicit hentes for en formel. Når du skyder et mål eller et andet værdifelt ind i en celle i en pivottabel, undersøger Power Pivot -programmet række-og kolonneoverskrifter, udsnit og rapportfiltre for at bestemme konteksten. Power Pivot foretager derefter de nødvendige beregninger for at udfylde hver celle i pivottabellen. Det sæt data, der hentes, er forespørgsels konteksten for hver celle.

Da konteksten kan ændres afhængigt af, hvor du placerer formlen, ændres resultatet af formlen også afhængigt af, om du bruger formlen i en pivottabel med mange grupperinger og filtre eller i en beregnet kolonne uden filtre og minimal kontekst.

Antag f. eks., at du opretter denne simple formel, der summerer værdierne i kolonnen avance i tabellen salg : = Sum ("salg" [profit]).

Hvis du bruger denne formel i en beregnet kolonne i tabellen salg , vil resultaterne for formlen være den samme for hele tabellen, fordi forespørgsels konteksten for formlen altid er hele datasættet i tabellen salg . Dine resultater vil have avance for alle områder, alle produkter, alle år osv.

Normalt vil du typisk ikke have vist samme resultat hundredvis af gange, men i stedet vil du have overskuddet for et bestemt år, et bestemt land eller område, et bestemt produkt eller en kombination af disse og derefter få en samlet total.

I en pivottabel er det let at ændre konteksten ved at tilføje eller fjerne kolonneoverskrifter og rækkeoverskrifter og ved at tilføje eller fjerne udsnit. Du kan oprette en formel som den ovenfor, i et mål og derefter slippe den i en pivottabel. Hver gang du føjer kolonne-eller rækkeoverskrifter til pivottabellen, ændrer du forespørgsels konteksten, hvor målingen evalueres. Du skal også påvirke konteksten ved at foretage udsnit og filtrering. Den samme formel, der bruges i en pivottabel, evalueres derfor i en anden forespørgsels kontekst for hver celle.

Toppen af siden

Filter kontekst

Filterkontekst tilføjes, når du angiver filter begrænsninger på det sæt af værdier, der er tilladt i en kolonne eller tabel, ved hjælp af argumenter til en formel. Filter konteksten gælder oven på andre kontekster, f. eks rækkekontekst eller forespørgsels kontekst.

For eksempel beregner pivottabellen værdierne for hver celle baseret på række-og kolonneoverskrifterne, sådan som det er beskrevet i forrige afsnit i forespørgsels konteksten. Men i de mål eller beregnede kolonner, du føjer til pivottabellen, kan du angive filterudtryk for at styre de værdier, der bruges i formlen. Du kan også selektivt rydde filtrene for bestemte kolonner.

Du kan finde flere oplysninger om, hvordan du opretter filtre i formler, under filter funktioner.

Hvis du vil se et eksempel på, hvordan filtre kan ryddes for at oprette hovedtotaler, skal du se afsnittet alle.

Du kan finde eksempler på, hvordan du selektivt rydder og anvender filtre i formler, i funktionen ALLEXCEPT.

Du skal derfor gennemse definitionen af mål eller formler, der bruges i en pivottabel, så du er opmærksom på filterkontekst, når du fortolker resultaterne af formler.

Toppen af siden

Bestemmelse af kontekst i formler

Når du opretter en formel, kontrollerer Power Pivot for Excel først for generel syntaks, og derefter undersøges navnene på de kolonner og tabeller, du angiver, i forhold til mulige kolonner og tabeller i den aktuelle kontekst. Hvis Power Pivot ikke kan finde de kolonner og tabeller, der er angivet i formlen, får du en fejlmeddelelse.

Konteksten bestemmes som beskrevet i de foregående afsnit ved hjælp af de tilgængelige tabeller i projektmappen, eventuelle relationer mellem tabellerne og eventuelle filtre, der er anvendt.

Hvis du for eksempel har importeret nogle data til en ny tabel og ikke har anvendt filtre, er hele sættet af kolonner i tabellen en del af den aktuelle kontekst. Hvis du har flere tabeller, der er knyttet til relationer, og du arbejder i en pivottabel, der er blevet filtreret, ved at tilføje kolonneoverskrifter og bruge udsnitsværktøjer, indeholder konteksten de relaterede tabeller og eventuelle filtre på dataene.

Kontekst er et effektivt begreb, der også kan gør det svært at foretage fejlfinding af formler. Vi anbefaler, at du begynder med enkle formler og relationer for at se, hvordan kontekst fungerer, og derefter begynde at eksperimentere med enkle formler i pivottabeller. Følgende afsnit indeholder også nogle eksempler på, hvordan formler bruger forskellige kontekst typer til at returnere resultater dynamisk.

Eksempler på kontekst i formler

  • Den relaterede funktion udvider konteksten for den aktuelle række for at medtage værdier i en relateret kolonne. Dette gør det muligt at udføre opslag. Eksemplet i dette emne illustrerer interaktionen mellem filtrering og rækkekontekst.

  • Funktionen FILTER gør det muligt at angive de rækker, der skal medtages i den aktuelle kontekst. Eksemplerne i dette emne beskriver også, hvordan du integrerer filtre i andre funktioner, der foretager aggregeringer.

  • Funktionen alle angiver sammenhæng i en formel. Du kan bruge den til at tilsidesætte filtre, der er anvendt som resultat af forespørgsels kontekst.

  • Med funktionen ALLEXCEPT kan du fjerne alle filtre undtagen en, du angiver. Begge emner indeholder eksempler, der hjælper dig med at opbygge formler og forstå komplekse kontekster.

  • De tidligere og TIDLIGste funktioner gør det muligt at skifte mellem tabeller ved at udføre beregninger, mens der refereres til en værdi fra en indre løkke. Hvis du kender konceptet med rekursion og med indre og ydre løkker, sætter du pris på den ydeevne, som tidligere og de TIDLIGste funktioner giver. Hvis du er ny bruger af disse begreber, bør du følge trinnene i eksemplet for at se, hvordan de indre og ydre kontekster bruges i beregninger.

Toppen af siden

Referentiel integritet

I dette afsnit beskrives nogle af de avancerede begreber, der er relateret til manglende værdier i Power Pivot -tabeller, der er forbundet med relationer. Dette afsnit kan være nyttigt, hvis du har projektmapper med flere tabeller og komplekse formler, og du vil have hjælp til at forstå resultaterne.

Hvis du er ny for relationsdata koncepter, anbefaler vi, at du først har læst introduktions emnet, Oversigt over relationer.

Referentiel integritet og Power Pivot -relationer

Power Pivot kræver ikke, at referentiel integritet håndhæves mellem to tabeller, for at du kan definere en gyldig relation. I stedet oprettes der en tom række på "en"-slutningen af hver en-til-mange-relation og bruges til at håndtere alle rækker, der ikke matcher, fra den relaterede tabel. Det fungerer effektivt som en SQL OUTER JOIN.

Hvis du grupperer data efter den ene side af relationen i pivottabeller, grupperes ikke-relaterede data på den mange side af relationen sammen og medtages i totaler med en tom rækkeoverskrift. Den tomme overskrift er omtrent lig med "ukendt medlem."

Forstå det ukendte medlem

Begrebet ukendt medlem er sandsynligvis kendt, hvis du har arbejdet med multidimensionale databasesystemer som SQL Server Analysis Services. Hvis ordet er nyt for dig, er det følgende eksempel, der forklarer, hvad det ukendte medlem er, og hvordan det påvirker beregninger.

Antag, at du opretter en beregning, der opsummerer månedligt salg for hver butik, men en kolonne i tabellen salg mangler en værdi for butiks navnet. Da tabellerne for butik og salg er forbundet med butiks navnet, hvad ville du forvente at finde i formlen? Hvordan skal pivottabel gruppen eller vise salgstal, der ikke er relateret til en eksisterende butik?

Dette problem er et almindeligt et problem i datalager steder, hvor store tabeller med faktadata skal være logisk relateret til dimensionstabeller, der indeholder oplysninger om butikker, områder og andre attributter, der bruges til at kategorisere og beregne fakta. For at løse problemet er alle nye kendsgerninger, der ikke er relateret til en eksisterende enhed, midlertidigt tildelt det ukendte medlem. Derfor vises de ikke-relaterede oplysninger grupperet i en pivottabel under en tom overskrift.

Behandling af tomme værdier i forhold til den tomme række

Tomme værdier er forskellige fra de tomme rækker, der tilføjes for at rumme det ukendte medlem. Den tomme værdi er en speciel værdi, der bruges til at repræsentere null-værdier, tomme strenge og andre manglende værdier. Du kan finde flere oplysninger om den tomme værdi samt andre DAX-datatyper under datatyper i datamodeller.

Toppen af siden

Udvid dine Office-færdigheder
Gå på opdagelse i kurser
Få nye funktioner først
Bliv Office Insider

Var disse oplysninger nyttige?

Tak for din feedback!

Tak for din feedback! Det lyder, som om det vil kunne hjælpe, hvis du bliver sat i forbindelse med en af vores Office-supportteknikere.

×