Kontext i DAX-formler

Obs!: Vi vill kunna erbjuda dig bästa möjliga supportinnehåll så fort som möjligt och på ditt språk. Den här sidan har översatts med hjälp av automatiserad översättning och kan innehålla grammatiska fel eller andra felaktigheter. Vår avsikt är att den här informationen ska vara användbar för dig. Vill du berätta för oss om informationen är till hjälp längst ned på sidan? Här är artikeln på engelska som referens.

Med sammanhang kan du utföra dynamisk analys, där resultatet av en formel ändras så att den återspeglar den aktuella rad-eller cell markeringen och även relaterade data. Det är mycket viktigt att förstå sammanhang och att använda sammanhang för att skapa avancerade formler, dynamiska analyser och för fel sökning i formler.

I det här avsnittet definieras olika typer av kontext: rad kontext, fråge kontext och filter kontext. Det förklarar hur kontexten 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 illustrerar hur resultaten av formler ändras enligt sammanhanget.

Förstå kontext

Formler i Power Pivot kan påverkas av de filter som används i en pivottabell, efter relationer mellan tabeller och efter filter som används i formler. Sammanhang är det möjligt att utföra dynamisk analys. Sammanhang är viktigt för att skapa och för fel sökning av formler.

Det finns olika typer av kontext: rad kontext, fråge kontext och filter kontext.

Rad kontexten kan betraktas som "den aktuella raden". Om du har skapat en beräknad kolumn består rad kontexten 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 sedan använder det värdet medan en åtgärd utförs i en hel tabell.

En frågetext refererar till den del av data som är implicit skapad för varje cell i en pivottabell, beroende på rad-och kolumn rubrikerna.

Filter kontext är den uppsättning värden som är tillåtna i varje kolumn, baserat på filter begränsningar som användes på raden eller som definieras av filter uttryck i formeln.

Överst på sidan

Rad kontext

Om du skapar en formel i en beräknad kolumn inkluderar rad sammanhanget för formeln värdena från alla kolumner på den aktuella raden. Om tabellen är relaterad till en annan tabell innehåller innehållet också 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 adderar två kolumner från samma tabell. Den här formeln beter sig 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: det går inte att referera till ett värde från raden före den aktuella raden genom att använda intervall notation och det går inte att referera till något enskilt värde i en tabell eller cell. Du måste alltid arbeta med tabeller och kolumner.

Rad kontexten 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 relaterad för att hämta ett moms värde från en relaterad tabell, baserat på den region där beställningen skickades. Moms svärdet bestäms med hjälp av värdet för regionen i den aktuella tabellen, letar upp regionen i den relaterade tabellen och sedan får moms satsen för den regionen från den relaterade tabellen.

= [Frakt] + relaterat (' region ' [TaxRate])

Med den här formeln får du bara moms satsen för den aktuella regionen, från tabellen region. Du behöver inte veta eller ange den tabell som ska kopplas till tabellerna.

Kontext för flera rader

DAX inkluderar funktioner som itererar beräkningar över en tabell. Dessa funktioner kan ha flera aktuella rader och aktuella rad kontexter. I programmerings termer kan du skapa formler som recurse över en inre och en yttre ögla.

Anta till exempel att arbets boken innehåller tabellen Products och en Sales -tabell. Du kan behöva gå igenom hela försäljnings tabellen, som är full av transaktioner med flera produkter, och hitta den beställda kvantiteten för varje produkt i en transaktion.

I Excel kräver den här beräkningen en serie mellanliggande sammanfattningar som måste återskapas om data ändras. Om du är en privilegie rad användare i Excel kan du kanske skapa mat ris formler som gör jobbet. Du kan också skriva kapslade under val i en Relations databas.

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

= Maxx, (FILTER (Sales, [ProdKey] = tidigare ([ProdKey])), försäljning [OrderQty])

En detaljerad genom gång av den här formeln finns i den tidigare.

Med funktionen tidigare lagras rad kontexten från den operation som föregår den aktuella åtgärden. Vid alla tillfällen lagras funktionen i minne två uppsättningar kontext: en uppsättning kontext representerar den aktuella raden för den inre slingan i formeln och en annan uppsättning kontext representerar den aktuella raden för formeln. DAX matar automatiskt in värden mellan de två slingarna så att du kan skapa komplexa mängder.

Överst på sidan

Fråge kontext

En frågetext refererar till den del av data som en implicit hämtas för en formel. När du släpper ett mått eller något annat värde-fält i en cell i en pivottabell undersöker Power Pivot-motorn rad-och kolumn rubrikerna, utsnitt och rapport filter för att fastställa sammanhanget. Därefter gör Power Pivot nödvändiga beräkningar för att fylla i varje cell i pivottabellen. Den uppsättning data som hämtas är frågans kontext för varje cell.

Eftersom sammanhanget kan ändras beroende på var du placerar formeln ändras Formelns resultat också 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 en minimal kontext.

Anta till exempel att du skapar den här enkla formeln som summerar värdena i kolumnen vinst i tabellen försäljning : = Summa (' försäljning ' [TB]).

Om du använder den här formeln i en beräknad kolumn i tabellen försäljning är resultatet för formeln samma för hela tabellen, eftersom frågans frågeuttryck alltid är hela data uppsättningen för försäljnings tabellen. Resultaten har täckning för alla regioner, alla produkter, alla år och så vidare.

Vanligt vis vill du kanske inte visa samma resultat hundratals gånger, men i stället vill du få täckningen för ett visst år, ett visst land eller en viss region, en särskild produkt eller en kombination av dessa och få sedan en total summa.

I en pivottabell är det enkelt att ändra kontext genom att lägga till eller ta bort kolumn-och rad rubriker 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 rad rubriker i pivottabellen kan du ändra den frågetext i vilken måttet utvärderas. Segmenterings-och filtrerings operationer påverkar också sammanhanget. Därför utvärderas samma formel som används i en pivottabell i en annan frågetext för varje cell.

Överst på sidan

Filter kontext

Filter kontext läggs till när du anger filter begränsningar för de tillåtna värdena i en kolumn eller tabell med hjälp av argument till en formel. Filter kontexten tillämpas ovanpå andra kontexter, till exempel rad kontext eller fråga.

En pivottabell beräknar till exempel sina värden för varje cell baserat på rad-och kolumn rubrikerna enligt beskrivningen i föregående avsnitt i frågans kontext. I de mått eller beräknade kolumner som du lägger till i pivottabellen kan du ange filter uttryck för att kontrol lera värdena som används i formeln. Du kan också selektivt Radera filter för vissa kolumner.

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

Ett exempel på hur filter kan rensas för att skapa total summor finns i allt.

Exempel på hur du kan selektivt ta bort och tillämpa 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 filter kontexten när du tolkar resultatet från formler.

Överst på sidan

Avgöra kontext i formler

När du skapar en formel kontrollerar Power Pivot för Excel först den allmänna syntaxen och kontrollerar sedan namnen på kolumner och tabeller som du tillhandahåller mot möjliga kolumner och tabeller i den aktuella kontexten. Om Power Pivot inte hittar kolumnerna och tabellerna i formeln får du ett fel meddelande.

Kontexten bestäms enligt beskrivningen i föregående avsnitt, med hjälp av de tillgängliga tabellerna i arbets boken, alla relationer mellan tabellerna och eventuella filter som har tillämpats.

Om du till exempel precis har importerat data till en ny tabell och inte har använt några filter, är alla kolumner i tabellen en del av den aktuella kontexten. Om du har flera tabeller som är länkade med relationer och du arbetar i en pivottabell som har filtrerats genom att lägga till kolumn rubriker och använda utsnitt, innehåller kontexten de relaterade tabellerna och eventuella filter för informationen.

Context är ett kraftfullt koncept som gör det svårare att felsöka formler. Vi rekommenderar att du börjar med enkla formler och relationer för att se hur kontexten fungerar och sedan börjar experimentera med enkla formler i pivottabeller. I följande avsnitt finns också några exempel på hur formler använder olika typer av kontext för att returnera resultat dynamiskt.

Exempel på sammanhang i formler

  • Funktionen relaterad expanderar kontexten för den aktuella raden så att värden i en relaterad kolumn tas med. Med det här kan du söka efter uppslag. I det här avsnittet visas interaktionen mellan filtrering och rad kontext.

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

  • ALLA funktioner i en formel. Du kan använda den för att åsidosätta filter som används som resultat av en frågetext.

  • Med funktionen ALLEXCEPT kan du ta bort alla filter utom ett som du anger. I båda avsnitten finns exempel som visar hur du skapar formler och förstår komplexa sammanhang.

  • Med de tidigare och TIDIGaste funktionerna kan du upprepa tabellerna genom att utföra beräkningar och referera till ett värde från en inre loop. Om du är van vid begreppet rekursion och med inre och yttre slingor uppskattar du hur mycket de tidigare och TIDIGaste funktionerna ger. Om du är nybörjare på dessa koncept bör du följa stegen i exemplet noggrant för att se hur de inre och yttre beskrivarna används i beräkningar.

Överst på sidan

Referens integritet

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

Om du inte är nybörjare i Relations data koncept rekommenderar vi att du först läser introduktions avsnittet, Relations översikten.

Referens integritet och Power Pivot relationer

Power Pivot kräver inte att referens integritet tillämpas mellan två tabeller för att definiera en giltig relation. I stället skapas en tom rad i "1"-slutet av varje 1:1-relation och används för att hantera alla icke matchande rader från den relaterade tabellen. Det fungerar effektivt som en SQL-yttre koppling.

Om du grupperar data efter den ena sidan av relationen i pivottabeller, grupperas alla omatchade data på n-sidan av relationen och inkluderas i summor med en tom rad rubrik. Den tomma rubriken är ungefär lika med "okänd medlem".

Förstå den okända medlemmen

Begreppet okänd medlem är förmodligen bekant för dig om du har arbetat med flerdimensionella databas system, till exempel SQL Server Analysis Services. Om termen är ny för dig kan följande exempel förklaras vad den okända medlemmen är och hur den påverkar beräkningar.

Anta att du skapar en beräkning som summerar månads försäljningen för varje butik, men en kolumn i tabellen försäljning saknar ett värde för butiks namnet. Med hänsyn till att tabellerna för butik och försäljning är anslutna med butiks namnet förväntar du dig att hända i formeln? Hur ska gruppen pivottabell eller Visa försäljnings siffror som inte är relaterade till en befintlig butik?

Det här problemet är ett vanligt i data lager, där stora tabeller med fakta uppgifter måste vara logiskt relaterade till dimensions tabeller som innehåller information om butiker, regioner och andra attribut som används för att kategorisera och beräkna fakta. För att lösa problemet är alla nya omständigheter som inte är relaterade till en befintlig enhet tillfälligt tilldelade till den okända medlemmen. Det beror på att orelaterade fakta visas grupperade i en pivottabell under en tom rubrik.

Behandling av tomma värden kontra den tomma raden

Tomma värden skiljer sig från de tomma rader som läggs till för att passa den okända medlemmen. Det tomma värdet är ett speciellt värde som används för att representera nullvärden, tomma strängar och andra saknade värden. Mer information om det tomma värdet samt andra DAX-datatyper finns i data typer i data modeller.

Överst på sidan

Utöka dina Office-kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×