Log på med Microsoft
Log på, eller opret en konto.
Hej
Markér en anden konto.
Du har flere konti
Vælg den konto, du vil logge på med.

Kontekst gør det muligt at udføre dynamisk analyse, hvor resultaterne af en formel kan ændres, så de afspejler den aktuelle række eller cellemarkering og også eventuelle relaterede data. Det er meget vigtigt at forstå kontekst og bruge kontekst effektivt til at opbygge effektive formler, dynamiske analyser og til fejlfinding af problemer i formler.

Dette afsnit definerer de forskellige konteksttyper: rækkekontekst, forespørgselskontekst og filterkontekst. Den forklarer, hvordan kontekst 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 i forhold til konteksten.

Forstå kontekst

Formler i Power Pivot blive påvirket af de filtre, der anvendes i en pivottabel, af relationer mellem tabeller og af filtre, der bruges i formler. Kontekst er det, der gør det muligt at udføre dynamisk analyse. Det er vigtigt at forstå kontekst, når du opretter og foretager fejlfinding af formler.

Der findes forskellige konteksttyper: rækkekontekst, forespørgselskontekst og filterkontekst.

Rækkekontekst kan tænkes som "den aktuelle række". Hvis du har oprettet en beregnet kolonne, består rækkekonteksten af værdierne i hver enkelt række og værdier i kolonner, der er relateret til den aktuelle række. Der er også nogle funktioner (TIDLIGERE og TIDLIGSTE),der henter en værdi fra den aktuelle række og derefter bruger denne værdi, mens du udfører en handling over en hel tabel.

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

Filterkontekst er sættet af tilladte værdier i hver kolonne baseret på filterbegrænsninger, der blev anvendt på rækken, eller som er defineret af filterudtryk i formlen.

Toppen af siden

Rækkekontekst

Hvis du opretter en formel i en beregnet kolonne, medtager rækkekonteksten for den pågældende formel værdierne fra alle kolonner i den aktuelle række. Hvis tabellen er relateret til en anden tabel, medtager 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] + [Moms],

, der lægger to kolonner sammen fra den samme tabel. Denne formel fungerer som formler i Excel tabel, som 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ådenotering, og du kan ikke referere til en vilkårlig enkelt værdi i en tabel eller celle. Du skal altid arbejde med tabeller og kolonner.

Rækkekontekst følger automatisk relationerne mellem tabeller for at afgøre, hvilke rækker i relaterede tabeller, der skal knyttes til den aktuelle række.

I følgende formel bruges f.eks. funktionen RELATED til at hente en momsværdi fra en relateret tabel, der er baseret på det område, ordren blev sendt til. Momsvæ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] + RELATED('Region'[TaxRate])

Denne formel henter ganske enkelt momssatsen for det aktuelle område fra tabellen Område. Du behøver ikke at kende eller angive den nøgle, der forbinder tabellerne.

Kontekst for flere rækker

Desuden indeholder DAX funktioner, der genaktiverer beregninger over en tabel. Disse funktioner kan have flere aktuelle rækker og aktuelle rækkekontekster. Programmeringsmæssigt kan du oprette formler, der rekurser over en indre og ydre løkke.

Antag f.eks., at projektmappen indeholder tabellen Produkter og tabellen Salg. Det kan være en ide at gennemgå hele salgstabellen, som er fuld af transaktioner med flere produkter, og finde den største ordremængde for hvert produkt i en transaktion.

I Excel beregning kræves der en række mellemliggende opsummeringer, som ville være nødt til at blive genopbygget, hvis dataene ændres. If you are a power user of Excel, you might be able to build array formulas that would do the job. I en relationsdatabase kan du også skrive indlejrede undermarkerede markeringer.

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

=MAKSX(FILTRER(Salg,[ProdKey]=TIDLIGERE([ProdKey])),Salg[Ordrety])

Hvis du vil have en detaljeret gennemgang af denne formel, skal du se TIDLIGERE.

Kort sagt gemmer funktionen TIDLIGERE rækkekonteksten fra den handling, der kom før den aktuelle handling. Funktionen gemmer hele tiden i hukommelsen to sæt kontekst: Et sæt kontekst repræsenterer den aktuelle række for formlens indre løkke, og et andet sæt kontekst repræsenterer den aktuelle række for formlens ydre løkke. DAX føder automatisk værdier mellem de to løkker, så du kan oprette komplekse aggregater.

Toppen af siden

Forespørgselskontekst

Forespørgselskontekst refererer til det undersæt af data, der implicit hentes for en formel. Når du slipper en måling eller et andet værdifelt i en celle i en pivottabel, undersøger Power Pivot -programmet række- og kolonneoverskrifter, udsnitsværktøjer og rapportfiltre for at bestemme konteksten. Derefter Power Pivot foretage de nødvendige beregninger for at udfylde hver celle i pivottabellen. Det sæt data, der hentes, er forespørgselskonteksten for hver celle.

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

Antag f.eks., at du opretter denne enkle formel, der summerer værdierne i kolonnen Overskud i tabellen Salg:=SUM('Salg'[Overskud]).

Hvis du bruger denne formel i en beregnet kolonne i tabellen Salg, vil resultatet for formlen være det samme for hele tabellen, fordi forespørgselskonteksten for formlen altid er hele datasættet i tabellen Salg. Dine resultater har overskud for alle områder, alle produkter, alle år osv.

Du vil dog typisk ikke se det samme resultat hundredvis af gange, men i stedet ønsker du at få overskuddet for et bestemt år, et bestemt land eller område, et bestemt produkt eller en kombination af disse og derefter få en hovedtotal.

I en pivottabel er det nemt at ændre konteksten ved at tilføje eller fjerne kolonne- og rækkeoverskrifter og ved at tilføje eller fjerne udsnitsværktøjer. Du kan oprette en formel som den ovenfor i en måling og derefter slippe den i en pivottabel. Når du tilføjer kolonne- eller rækkeoverskrifter i pivottabellen, ændrer du den forespørgselskontekst, hvori målingen evalueres. Handlingerne Slicing og filtrering påvirker også konteksten. Den samme formel, der bruges i en pivottabel, evalueres derfor i en anden forespørgselskontekst for hver celle.

Toppen af siden

Filterkontekst

Filterkontekst tilføjes, når du angiver filterbegrænsninger for det sæt af værdier, der er tilladt i en kolonne eller tabel, ved at bruge argumenter til en formel. Filterkontekst gælder oven i andre kontekster, f.eks. rækkekontekst eller forespørgselskontekst.

En pivottabel beregner f.eks. sine værdier for hver celle ud fra række- og kolonneoverskrifterne, som beskrevet i forrige afsnit om forespørgselskontekst. Men inden for de målinger eller beregnede kolonner, du føjer til pivottabellen, kan du angive filterudtryk for at styre de værdier, der bruges af formlen. Du kan også vælge at rydde filtre på bestemte kolonner.

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

Du kan finde et eksempel på, hvordan filtre kan ryddes for at oprette hovedtotaler, i ALLE.

Du kan finde eksempler på, hvordan du selektivt kan rydde og anvende filtre i formler, i Funktionen ALLEXCEPT.

Derfor skal du gennemgå definitionen af målinger eller formler, der bruges i en pivottabel, så du er opmærksom på filterkonteksten, når du fortolker resultaterne af formler.

Toppen af siden

Afgøre konteksten i formler

Når du opretter en formel, søger Power Pivot efter Excel først efter generel syntaks, og derefter kontrolleres 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 af formlen, får du en fejl.

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 f.eks. lige har importeret nogle data til en ny tabel og ikke har anvendt nogen filtre, er hele sættet af kolonner i tabellen en del af den aktuelle kontekst. Hvis du har flere tabeller, der er sammenkædet efter relationer, og du arbejder i en pivottabel, der er filtreret, ved at tilføje kolonneoverskrifter og ved hjælp af udsnitsværktøjer, omfatter konteksten de relaterede tabeller og eventuelle filtre på dataene.

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

Eksempler på kontekst i formler

  • Funktionen RELATED udvider konteksten for den aktuelle række til at medtage værdier i en relateret kolonne. Dette giver dig mulighed for at udføre opslag. Eksemplet i dette emne illustrerer interaktionen mellem filtrering og rækkekontekst.

  • Med funktionen FILTRER kan du angive de rækker, der skal medtages i den aktuelle kontekst. Eksemplerne i dette emne illustrerer også, hvordan du integrerer filtre i andre funktioner, der udfører aggregater.

  • Funktionen ALLE angiver konteksten i en formel. Du kan bruge den til at tilsidesætte filtre, der anvendes som resultat af forespørgselskontekst.

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

  • Funktionerne TIDLIGERE og TIDLIGSTE gør det muligt at gå gennem tabeller ved at udføre beregninger, mens der refereres til en værdi fra en indre løkke. Hvis du er bekendt med begrebet rekursion og med indre og ydre løkker, vil du sætte pris på den styrke, som funktionerne TIDLIGERE og TIDLIGSTE giver. Hvis du er ny bruger af disse begreber, skal du følge trinnene i eksemplet omhyggeligt for at se, hvordan de indre og ydre kontekster bruges i beregninger.

Toppen af siden

Referentiel integritet

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

Hvis du er ny bruger af relationsdatakoncepter, anbefaler vi, at du først læser det indledende emne, Oversigt over relationer.

Referentiel integritet Power Pivot relationer

Power Pivot kræver ikke, at referentiel integritet gennemtvinges mellem to tabeller for at definere en gyldig relation. Der oprettes i stedet en tom række i "en"-enden af hver en til mange-relation, og den bruges til at håndtere alle rækker, der ikke matcher, fra den relaterede tabel. Den fungerer effektivt som en SQL ydre joinforbindelse.

Hvis du grupperer data på en-siden af relationen i pivottabeller, grupperes eventuelle ikke-relaterede data på mange-siden af relationen sammen og medtages i totaler med en tom rækkeoverskrift. Den tomme overskrift svarer stort set til det "ukendte medlem".

Forstå det ukendte medlem

Begrebet det ukendte medlem er sandsynligvis velkendt for dig, hvis du har arbejdet med flerdimensionelle databasesystemer, f.eks. SQL Server Analysis Services. Hvis du ikke kender ordet, kan du i følgende eksempel se, hvad det ukendte medlem er, og hvordan det påvirker beregninger.

Antag, at du opretter en beregning, der summerer månedligt salg for hver butik, men en kolonne i tabellen Salg mangler en værdi for butiksnavnet. Da tabellerne for Storeog Salg er forbundet med navnet på butikken, hvad ville du så forvente at ske i formlen? Hvordan skal pivottabellen vise de salgstal, der ikke er relateret til en eksisterende butik?

Dette problem er normalt i datalagre, hvor store tabeller af faktadata skal være logisk relateret til dimensionstabeller, der indeholder oplysninger om butikker, områder og andre attributter, der bruges til kategorisering og beregning af fakta. For at løse problemet tildeles nye oplysninger, der ikke er relateret til en eksisterende enhed, midlertidigt til det ukendte medlem. Derfor vises ikke-relaterede fakta grupperet i en pivottabel under en tom overskrift.

Behandling af tomme værdier kontra den tomme række

Tomme værdier er forskellige fra de tomme rækker, der tilføjes for at give plads til det ukendte medlem. Den tomme værdi er en særlig 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

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.

Communities hjælper dig med at stille og besvare spørgsmål, give feedback og høre fra eksperter med omfattende viden.

Var disse oplysninger nyttige?

Hvor tilfreds er du med kvaliteten af sproget?
Hvad påvirkede din oplevelse?
Når du trykker på Send, bliver din feedback brugt til at forbedre Microsoft-produkter og -tjenester. Din it-administrator kan indsamle disse data. Erklæring om beskyttelse af personlige oplysninger.

Tak for din feedback!

×