Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.

Med sammanhang kan du utföra dynamisk analys där resultaten av en formel kan ändras så att de återspeglar aktuell rad- eller cellmarkering samt relaterade data. Att förstå kontext och använda kontext effektivt är mycket viktigt för att skapa formler med hög prestanda, dynamiska analyser och för att felsöka problem i formler.

Det här avsnittet definierar olika typer av sammanhang: radkontext, frågekontext och filterkontext. Här förklaras hur kontext utvärderas för formler i beräknade kolumner och i pivottabeller.

Den sista delen av den här artikeln innehåller länkar till detaljerade exempel som visar hur resultatet av formler ändras i enlighet med kontext.

Förstå sammanhang

Formler i Power Pivot påverkas av de filter som används i en pivottabell, av relationerna mellan tabeller och av filter som används i formler. Kontext är det som gör det möjligt att utföra dynamisk analys. Att förstå kontext är viktigt för att skapa och felsöka formler.

Det finns olika typer av sammanhang: radkontext, frågekontext och filterkontext.

Radkontext kan ses som "aktuell rad". Om du har skapat en beräknad kolumn består radkontexten av värdena i varje enskild rad och värden i kolumner som är relaterade till den aktuella raden. Det finns också vissa funktioner(TIDIGARE och TIDIGAST)som hämtar ett värde från den aktuella raden och använder det värdet när du utför en åtgärd över en hel tabell.

Frågesammanhang refererar till den delmängd data som skapas implicit för varje cell i en pivottabell, beroende på rad- och kolumnrubriker.

Filterkontext är en uppsättning värden som tillåts i varje kolumn, baserat på filtervillkor som tillämpats på raden eller som definieras av filteruttryck i formeln.

Överst på sidan

Radkontext

Om du skapar en formel i en beräknad kolumn innehåller radkontexten för den formeln värdena från alla kolumner på den aktuella raden. Om tabellen är relaterad till en annan tabell inkluderar innehållet även alla värden från den andra tabellen som är relaterade till den aktuella raden.

Anta till exempel att du skapar en beräknad kolumn, =[Frakt] + [Skatt],

, som lägger ihop två kolumner från samma tabell. Den här formeln fungerar som formler i en Excel tabell som automatiskt refererar till värden från samma rad. Observera att tabeller skiljer sig från områden: du kan inte referera till ett värde från raden före den aktuella raden med hjälp av områdesnotation, och du kan inte referera till något godtyckligt enskilt värde i en tabell eller cell. Du måste alltid arbeta med tabeller och kolumner.

Radkontexten följer automatiskt relationerna mellan tabeller för att avgöra vilka rader i relaterade tabeller som är kopplade till den aktuella raden.

Följande formel använder till exempel funktionen RELATED för att hämta ett momsvärde från en relaterad tabell, baserat på den region som ordern levererades till. Tax value is determined by using the value for region in the current table, looking up the region in the related table, and then getting the tax rate for that region from the related table.

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

Den här formeln hämtar helt enkelt momssatsen för den aktuella regionen från tabellen Region. Du behöver inte veta eller ange nyckeln som kopplar ihop tabellerna.

Sammanhang med flera rader

DAX innehåller dessutom funktioner som itererar beräkningar över en tabell. Dessa funktioner kan ha flera aktuella rader och aktuella radkontext. I programmering termer kan du skapa formler som återkommer över en inre och yttre slinga.

Anta till exempel att din arbetsbok innehåller en tabell som innehåller en Produkt och en Försäljning-tabell. Du kanske vill gå igenom hela försäljningstabellen, som är full av transaktioner som innefattar flera produkter, och hitta den största kvantitet som beställts för varje produkt i en transaktion.

I Excel här beräkningen krävs en serie mellanliggande sammanfattningar, som skulle behöva vara återskapade om data ändras. If you are a power user of Excel, you might be able to build array formulas that would do the job. Alternativt kan du i en relationsdatabas skriva kapslade delmarkeringar.

Men med DAX kan du skapa en enda formel som returnerar rätt värde och resultaten uppdateras automatiskt när du lägger till data i tabellerna.

=MAXX(FILTER(Försäljning,[ProdKey]=EARLIER([ProdKey])),Försäljning[OrderQty])

En detaljerad genomgång av formeln finns i EARLIER.

Kort sagt lagrar funktionen EARLIER radkontexten från åtgärden som föregick den aktuella åtgärden. Vid alla tillfällen lagras funktionen i minnet av två sammanhangsuppsättningar: en uppsättning sammanhang representerar den aktuella raden för den inre loopen av formeln och en annan uppsättning sammanhang representerar den aktuella raden för formelns yttre slinga. I DAX matas värden automatiskt mellan de två looparna så att du kan skapa komplexa aggregerade värden.

Överst på sidan

Frågekontext

Frågesammanhang refererar till den delmängd data som hämtas implicit för en formel. När du släpper ett mått- eller annat värdefält i en cell i en pivottabell undersöker Power Pivot-motorn rad- och kolumnrubrikerna, utsnitt och rapportfilter för att fastställa sammanhanget. Gör Power Pivot de beräkningar som krävs för att fylla varje cell i pivottabellen. Den uppsättning data som hämtas är frågekontexten för varje cell.

Eftersom kontexten kan ändras beroende på var du placerar formeln ändras även resultaten av formeln beroende på om du använder formeln i en pivottabell med många grupperingar och filter, eller i en beräknad kolumn utan filter och minimalt sammanhang.

Anta att du skapar den här enkla formeln som summerar värdena i kolumnen Vinst i tabellen Försäljning:=SUMMA('Försäljning'[Vinst]).

Om du använder den här formeln i en beräknad kolumn i tabellen Försäljning blir resultatet för formeln detsamma för hela tabellen, eftersom frågekontexten för formeln alltid är hela datauppsättningen i tabellen Försäljning. Resultatet ger vinst för alla regioner, alla produkter, alla år och så vidare.

Men vanligtvis vill du inte se samma resultat hundratals gånger, men istället vill du få vinsten för ett visst år, ett visst land eller en viss region, en viss produkt eller en viss kombination av dessa, och sedan få en totalsumma.

I en pivottabell är det enkelt att ändra sammanhang genom att lägga till eller ta bort kolumn- och radrubriker och genom att lägga till eller ta bort utsnitt. Du kan skapa en formel som den ovan, i ett mått, och sedan släppa den i en pivottabell. När du lägger till kolumn- eller radrubriker i pivottabellen kan du ändra frågekontexten där måttet utvärderas. Både slicering och filtrering påverkar sammanhanget. Därför utvärderas samma formel, som används i en pivottabell, i ett annat frågesammanhang för varje cell.

Överst på sidan

Filterkontext

Filterkontext läggs till när du anger filterbegränsningar för uppsättningen värden som tillåts i en kolumn eller tabell, genom att använda argument till en formel. Filterkontexten tillämpas på andra sammanhang, till exempel radkontext eller frågekontext.

En pivottabell beräknar till exempel sina värden för varje cell baserat på rad- och kolumnrubrikerna, enligt beskrivningen i föregående avsnitt om frågekontext. Men inom de mått eller beräknade kolumner som du lägger till i pivottabellen kan du ange filteruttryck för att styra värdena som används av formeln. Du kan också selektivt ta bort filtren för vissa kolumner.

Mer information om hur du skapar filter i formler finns i Filterfunktioner.

Ett exempel på hur filter kan rensas för att skapa totalsummor finns i ALL.

Exempel på hur du selektivt kan rensa och använda filter i formler finns i funktionen ALLEXCEPT.

Därför måste du granska definitionen av mått eller formler som används i en pivottabell så att du är medveten om filterkontexten när du tolkar resultatet av formler.

Överst på sidan

Avgöra sammanhang i formler

När du skapar en formel söker Power Pivot efter Excel först efter allmän syntax och kontrollerar sedan namnen på kolumner och tabeller som du anger mot möjliga kolumner och tabeller i det aktuella sammanhanget. Om Power Pivot hittar de kolumner och tabeller som anges av formeln får du ett felmeddelande.

Kontexten avgörs enligt beskrivningen i föregående avsnitt, med hjälp av tillgängliga tabeller i arbetsboken, relationerna mellan tabellerna och eventuella filter som har använts.

Om du till exempel precis har importerat vissa data till en ny tabell och inte har tillämpat några filter, utgör hela uppsättningen kolumner i tabellen en del av det aktuella sammanhanget. Om du har flera tabeller som är länkade av relationer och du arbetar i en pivottabell som har filtrerats genom att lägga till kolumnrubriker och använda utsnitt inkluderar sammanhanget relaterade tabeller och eventuella filter på data.

Sammanhang är ett kraftfullt koncept som också kan göra det svårt att felsöka formler. Vi rekommenderar att du börjar med enkla formler och relationer för att se hur sammanhang fungerar och sedan börjar experimentera med enkla formler i pivottabeller. Följande avsnitt innehåller också några exempel på hur formler använder olika typer av kontext för att dynamiskt returnera resultat.

Exempel på kontext i formler

  • Funktionen RELATED utökar kontexten för den aktuella raden så att den inkluderar värden i en relaterad kolumn. Då kan du utföra uppslag. Exemplet i det här avsnittet visar interaktionen mellan filtrering och radkontext.

  • Med FILTER-funktionen kan du ange de rader som ska ingå i det aktuella sammanhanget. Exemplen i det här avsnittet visar också hur du bäddar in filter i andra funktioner som utför aggregerade funktioner.

  • Med funktionen ALL ställer du in sammanhang i en formel. Du kan använda den för att åsidosätta filter som tillämpas på grund av ett frågesammanhang.

  • Med funktionen ALLEXCEPT kan du ta bort alla filter utom de du anger. Båda ämnena innehåller exempel som hjälper dig att skapa formler och förstå komplexa sammanhang.

  • Med funktionerna TIDIGARE och TIDIGAST kan du stega igenom tabeller genom att utföra beräkningar, samtidigt som du refererar ett värde från en inre slinga. Om du är bekant med begreppet rekursion och med inre och yttre loopar kommer du att uppskatta den kraft som funktionerna EARLIER och EARLIEST ger. Om du är nybörjare inom de här begreppen bör du följa stegen i exemplet noggrant för att se hur de inre och yttre kontexterna används i beräkningar.

Överst på sidan

Referensintegritet

I det här avsnittet beskrivs några avancerade begrepp som rör saknade värden i Power Pivot som är sammankopplade av relationer. Det här avsnittet kan vara användbart för dig om du har arbetsböcker med flera tabeller och komplexa formler och vill ha hjälp med att förstå resultaten.

Om du är nybörjare på relationsdatakoncept rekommenderar vi att du först läser introduktionsavsnittet, Relationsöversikt.

Referensintegritet och Power Pivot relationer

Power Pivot krävs inte referensintegritet mellan två tabeller för att definiera en giltig relation. I stället skapas en tom rad i 1-änden av varje 1:1-relation och den används för att hantera alla rader som inte är matchande från den relaterade tabellen. Den fungerar på ett effektivt sätt SQL en yttre koppling.

Om du grupperar data i pivottabeller efter 1-sidan av relationen grupperas alla omatchade data på många-sidan av relationen tillsammans och tas med i summor med en tom radrubrik. Den tomma rubriken motsvarar på ett ungefär samma sätt som "okänd medlem".

Förstå den okända medlemmen

Konceptet med den okända medlemmen är antagligen bekant för dig om du har arbetat med flerdimensionella databassystem, till exempel SQL Server Analysis Services. Om termen är ny för dig förklarar följande exempel vad den okända medlemmen är och hur den påverkar beräkningar.

Anta att du skapar en beräkning som summerar månadsförsäljningen för varje butik, men att en kolumn i tabellen Försäljning saknar värdet för butiksnamnet. Vad skulle väntat dig att formelnskulle göra eftersom tabellerna för Store och Försäljning är sammankopplade med butiksnamnet? Hur ska pivottabellgruppen eller visa försäljningssiffrorna som inte är relaterade till en befintlig butik?

Det här problemet är vanligt i ett datalager, där stora tabeller med faktadata måste vara logiskt relaterade till dimensionstabeller som innehåller information om lager, områden och andra attribut som används för att kategorisera och beräkna fakta. För att lösa problemet tilldelas alla nya fakta som inte är relaterade till en befintlig entitet tillfälligt till den okända medlemmen. Det är därför orelaterade data visas grupperade i en pivottabell under en tom rubrik.

Behandling av tomma värden jämfört med den tomma raden

Tomma värden skiljer sig från de tomma raderna som läggs till för att hantera den okända medlemmen. Det tomma värdet är ett specialvärde som används för att representera null-värden, tomma strängar och andra värden som saknas. Mer information om det tomma värdet och andra DAX-datatyper finns i Datatyper i datamodeller.

Överst på sidan

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×