Applies ToExcel til Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Kontekst giver dig mulighed for 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 højtydende formler, dynamiske analyser og til fejlfinding af problemer i formler.

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

Forstå kontekst

Formler i Power Pivot kan påvirkes 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å konteksten i forbindelse med opbygning og fejlfinding af formler.

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

Rækkekontekst kan betragtes 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 TIDLIGST), 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 implicit oprettes for hver celle i en pivottabel, afhængigt af række- og kolonneoverskrifterne.

Filterkontekst er det sæt af værdier, der er tilladt 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, indeholder 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 en 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ådenotation, og du kan ikke referere til 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 er knyttet til den aktuelle række.

Følgende formel bruger f.eks. funktionen RELATED til at hente en momsværdi fra en relateret tabel baseret på det område, som ordren blev sendt til. Momsværdien bestemmes ved at bruge værdien for området i den aktuelle tabel, slå området op i den relaterede tabel og derefter hente momssatsen for det pågældende område fra den relaterede tabel.

= [Fragt] + RELATED('Region'[Moms])

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

Kontekst for flere rækker

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

Antag f.eks., at projektmappen indeholder tabellen Produkter og tabellen Salg . Det kan være en god ide at gennemgå hele salgstabellen, som er fuld af transaktioner, der involverer flere produkter, og finde det største antal bestilt for hvert produkt i en enkelt transaktion.

I Excel kræver denne beregning en række mellemliggende opsummeringer, som skal genopbygges, hvis dataene ændres. Hvis du er superbruger af Excel, kan du muligvis oprette matrixformler, der ville gøre jobbet. Alternativt kan du i en relationsdatabase skrive indlejrede undermarkeringer.

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]=EARLIER([ProdKey])),Salg[Ordremængde])

Du kan finde en detaljeret gennemgang af denne formel i funktionen TIDLIGERE.

Kort sagt gemmer funktionen TIDLIGERE rækkekonteksten fra den handling, der gik forud for den aktuelle handling. Funktionen gemmer hele tiden to sæt kontekst i hukommelsen: Et sæt kontekst repræsenterer den aktuelle række for den indre løkke af formlen, og et andet sæt kontekst repræsenterer den aktuelle række for den ydre løkke af formlen. DAX leverer 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 et målefelt 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 foretager Power Pivot de nødvendige beregninger for at udfylde hver celle i pivottabellen. Det datasæt, der hentes, er forespørgselskonteksten for hver celle.

Da konteksten kan ændre sig, afhængigt af hvor du placerer formlen, ændres resultatet af formlen også, afhængigt af om du bruger formlen i en pivottabel med mange grupper 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 vil have overskud for alle områder, alle produkter, alle år osv.

Normalt vil du dog ikke se det 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 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 udsnit. Du kan oprette en formel som den ovenfor i en måling og derefter slippe den i en pivottabel. Når du føjer kolonne- eller rækkeoverskrifter til pivottabellen, ændrer du forespørgselskonteksten, hvori målingen evalueres. Udskærings- og filtreringshandlinger påvirker også konteksten. Derfor evalueres den samme formel, der bruges i en pivottabel, i en anden forespørgselskontekst for hver celle.

Toppen af siden

Filterkontekst

Filterkontekst tilføjes, når du angiver filterbegrænsninger for det tilladte værdisæt i en kolonne eller tabel ved hjælp af argumenter til en formel. Filterkontekst gælder oven på andre kontekster, f.eks. rækkekontekst eller forespørgselskontekst.

En pivottabel beregner f.eks. dens værdier for hver celle baseret på 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 filtrene på bestemte kolonner.

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

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

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

Derfor skal du gennemse definitionen af målinger 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 til Excel først, om der er generel syntaks, og derefter kontrolleres navnene på 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 filtre, er hele sættet af kolonner i tabellen en del af den aktuelle kontekst. Hvis du har flere tabeller, der er sammenkædet af relationer, og du arbejder i en pivottabel, der er blevet filtreret ved at tilføje kolonneoverskrifter og bruge udsnit, 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 enkle formler og relationer for at se, hvordan kontekst fungerer, og derefter begynder at eksperimentere med simple formler i pivottabeller. 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 ét, du angiver. Begge emner omfatter eksempler, der fører dig gennem opbygning af formler og forståelse af komplekse sammenhænge.

  • Funktionerne TIDLIGERE og TIDLIGSTE giver dig mulighed for at gennemgå tabeller ved at udføre beregninger, mens du refererer til en værdi fra en indre løkke. Hvis du kender begrebet rekursion og med indre og ydre løkker, vil du sætte pris på den kraft, 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 sammenhænge bruges i beregninger.

Toppen af siden

Referentiel integritet

I dette afsnit beskrives nogle avancerede begreber, der er relateret til manglende værdier i 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 ønsker hjælp til at forstå resultaterne.

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

Referentiel integritet og Power Pivot relationer

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

Hvis du grupperer data efter den ene side 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 ukendt medlem er sandsynligvis velkendt for dig, hvis du har arbejdet med flerdimensionelle databasesystemer, f.eks. SQL Server Analysis Services. Hvis udtrykket er nyt for dig, forklares det i følgende eksempel, hvad det ukendte medlem er, og hvordan det påvirker beregninger.

Antag, at du opretter en beregning, der summerer det månedlige salg for hver butik, men en kolonne i tabellen Salg mangler en værdi for butiksnavnet. Da tabellerne for Store og Salg er forbundet med butiksnavnet, hvad ville du forvente at ske i formlen? Hvordan skal pivottabellen gruppere eller vise salgstal, der ikke er relateret til en eksisterende butik?

Dette problem er almindeligt i datalagre, hvor store 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 alle 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 vs. den tomme række

Tomme værdier adskiller sig 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 få mere at vide 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.