Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

Context stelt u in staat dynamische analyse uit te voeren, waarbij de resultaten van een formule kunnen worden gewijzigd om de huidige rij- of celselectie en eventuele gerelateerde gegevens weer te geven. Het is erg belangrijk om context te begrijpen en context effectief te gebruiken voor het bouwen van goed presterende formules, dynamische analyses en voor het oplossen van problemen in formules.

In deze sectie worden de verschillende typen context definieert: rijcontext, querycontext en filtercontext. Hier wordt uitgelegd hoe context wordt geëvalueerd voor formules in berekende kolommen en in draaitabellen.

Het laatste deel van dit artikel bevat koppelingen naar gedetailleerde voorbeelden die illustreren hoe de resultaten van formules veranderen op basis van de context.

Context begrijpen

Formules in Power Pivot kunnen worden beïnvloed door de filters die in een draaitabel worden toegepast, door relaties tussen tabellen en door filters die worden gebruikt in formules. Context is wat het mogelijk maakt om dynamische analyses uit te voeren. Het begrijpen van context is belangrijk voor het maken en oplossen van problemen met formules.

Er zijn verschillende typen context: rijcontext, querycontext en filtercontext.

Rijcontext kan worden gezien als 'de huidige rij'. Als u een berekende kolom hebt gemaakt, bestaat de rijcontext uit de waarden in elke afzonderlijke rij en waarden in kolommen die zijn gerelateerd aan de huidige rij. Er zijn ook enkele functies(EERDER en VROEGST)die een waarde uit de huidige rij krijgen en die waarde vervolgens gebruiken tijdens het uitvoeren van een bewerking over een hele tabel.

Querycontext verwijst naar de subset van gegevens die impliciet voor elke cel in een draaitabel wordt gemaakt, afhankelijk van de rij- en kolomkoppen.

Filtercontext is de set waarden die in elke kolom zijn toegestaan, op basis van filterbeperkingen die zijn toegepast op de rij of die zijn gedefinieerd door filterexpressie in de formule.

Naar boven

Rijcontext

Als u een formule maakt in een berekende kolom, bevat de rijcontext voor die formule de waarden uit alle kolommen in de huidige rij. Als de tabel is gerelateerd aan een andere tabel, bevat de inhoud ook alle waarden uit die andere tabel die zijn gerelateerd aan de huidige rij.

Stel dat u een berekende kolom maakt, =[Vracht] + [Belasting],

, die twee kolommen uit dezelfde tabel bij elkaar op voegt. Deze formule gedraagt zich als formules in een Excel tabel, die automatisch verwijzen naar waarden uit dezelfde rij. Houd er rekening mee dat tabellen verschillen van bereik: u kunt niet verwijzen naar een waarde uit de rij vóór de huidige rij met behulp van bereiknotatie en u kunt geen enkele willekeurige waarde in een tabel of cel gebruiken. U moet altijd met tabellen en kolommen werken.

Rijcontext volgt automatisch de relaties tussen tabellen om te bepalen welke rijen in gerelateerde tabellen zijn gekoppeld aan de huidige rij.

In de volgende formule wordt bijvoorbeeld de functie RELATED gebruikt om een belastingwaarde op te halen uit een gerelateerde tabel, op basis van het gebied waar de order naar is verzonden. De belastingwaarde wordt bepaald door de waarde voor regio in de huidige tabel te gebruiken, het gebied in de gerelateerde tabel op te zoeken en vervolgens het belastingtarief voor dat gebied op te halen uit de gerelateerde tabel.

= [Vracht] + RELATED('Regio'[TaxRate])

Met deze formule wordt gewoon het belastingtarief voor het huidige gebied uit de tabel Regio haalt. U hoeft de sleutel die de tabellen verbindt niet te kennen of op te geven.

Context met meerdere rijen

Daarnaast bevat DAX functies die berekeningen op een tabel itereren. Deze functies kunnen meerdere huidige rijen en huidige rijcontexten hebben. In programmeertermen kunt u formules maken die terugkeren via een binnenste en buitenste lus.

Stel dat uw werkmap een tabel Producten en een tabel Verkoop bevat. Misschien wilt u de hele verkooptabel, die vol staat met transacties met meerdere producten, door te nemen en de grootste hoeveelheid te vinden die voor elk product in één transactie is besteld.

Voor Excel berekening is een reeks tussentijdse samenvattingen vereist, die opnieuw moeten worden opgebouwd als de gegevens worden gewijzigd. Als u een power user van Excel, kunt u mogelijk matrixformules maken die de taak zouden doen. U kunt ook in een relationele database geneste subselecties schrijven.

Met DAX kunt u echter één formule maken die de juiste waarde retourneert en worden de resultaten automatisch bijgewerkt wanneer u gegevens aan de tabellen toevoegt.

=MAXX(FILTER(Verkoop;[ProdKey]=EERDER([ProdKey])),Verkoop[OrderQty])

Zie EERDER voor een gedetailleerde doorloop van deze formule.

Kortom, met de functie EERDER wordt de rijcontext opgeslagen van de bewerking die voorafging aan de huidige bewerking. De functie slaat te allen tijde twee sets context op in het geheugen: één set context vertegenwoordigt de huidige rij voor de binnenste lus van de formule en een andere set context vertegenwoordigt de huidige rij voor de buitenste lus van de formule. DAX feeds automatisch waarden tussen de twee lussen, zodat u complexe aggregaten kunt maken.

Naar boven

Querycontext

Querycontext verwijst naar de subset van gegevens die impliciet voor een formule wordt opgehaald. Wanneer u een maat- of ander waardeveld in een cel in een draaitabel zet, worden in de Power Pivot-engine de rij- en kolomkoppen, slicers en rapportfilters onderzocht om de context te bepalen. Vervolgens maakt Power Pivot de benodigde berekeningen om elke cel in de draaitabel te vullen. De verzameling gegevens die wordt opgehaald, is de querycontext voor elke cel.

Omdat de context kan veranderen, afhankelijk van waar u de formule plaats, worden de resultaten van de formule ook gewijzigd, afhankelijk van of u de formule gebruikt in een draaitabel met veel groeperingen en filters, of in een berekende kolom zonder filters en minimale context.

Stel dat u deze eenvoudige formule maakt die de waarden optelt in de kolom Winst van de tabel Verkoop:=SOM('Verkoop'[Winst]).

Als u deze formule gebruikt in een berekende kolom in de tabel Verkoop, zijn de resultaten voor de formule hetzelfde voor de hele tabel, omdat de querycontext voor de formule altijd de hele gegevensset van de tabel Verkoop is. Uw resultaten hebben winst voor alle regio's, alle producten, alle jaren, en ga zo maar door.

Meestal wilt u echter niet honderden keren hetzelfde resultaat zien, maar in plaats daarvan wilt u de winst voor een bepaald jaar, een bepaald land of bepaalde regio, een bepaald product of een combinatie hiervan krijgen en vervolgens een eindtotaal krijgen.

In een draaitabel kunt u gemakkelijk de context wijzigen door kolom- en rijkoppen toe te voegen of te verwijderen en slicers toe te voegen of te verwijderen. U kunt een formule maken zoals de bovenstaande, in een maat en deze vervolgens neerzetten in een draaitabel. Wanneer u kolom- of rijkoppen toevoegt aan de draaitabel, wijzigt u de querycontext waarin de meting wordt geëvalueerd. Het snijden en filteren van bewerkingen is ook van invloed op de context. Daarom wordt dezelfde formule, die in een draaitabel wordt gebruikt, geëvalueerd in een andere querycontext voor elke cel.

Naar boven

Filtercontext

Filtercontext wordt toegevoegd wanneer u filterbeperkingen opgeeft voor de set waarden die zijn toegestaan in een kolom of tabel, met behulp van argumenten voor een formule. Filtercontext is van toepassing op andere contexten, zoals rijcontext of querycontext.

Een draaitabel berekent bijvoorbeeld de waarden voor elke cel op basis van de rij- en kolomkoppen, zoals beschreven in de vorige sectie over querycontext. In de metingen of berekende kolommen die u aan de draaitabel toevoegt, kunt u echter filterexpressie opgeven om de waarden te bepalen die door de formule worden gebruikt. U kunt de filters voor bepaalde kolommen ook selectief wissen.

Zie de functies Filteren voor meer informatie over het maken van filters in formules.

Zie all voor een voorbeeld van hoe filters kunnen worden gewed om eindtotaal te maken.

Zie de functie ALLEXCEPTvoor voorbeelden van het selectief wissen en toepassen van filters in formules.

Daarom moet u de definitie bekijken van metingen of formules die in een draaitabel worden gebruikt, zodat u op de hoogte bent van de filtercontext bij het interpreteren van de resultaten van formules.

Naar boven

Context bepalen in formules

Wanneer u een formule maakt, Power Pivot voor Excel controleert u eerst op de algemene syntaxis en controleert u vervolgens de namen van kolommen en tabellen die u op de mogelijke kolommen en tabellen in de huidige context op geeft. Als Power Pivot kolommen en tabellen niet kunt vinden die door de formule zijn opgegeven, krijgt u een foutmelding.

Context wordt bepaald zoals beschreven in de voorgaande secties, met behulp van de beschikbare tabellen in de werkmap, eventuele relaties tussen de tabellen en eventuele filters die zijn toegepast.

Als u bijvoorbeeld net gegevens hebt geïmporteerd in een nieuwe tabel en geen filters hebt toegepast, maakt de hele set kolommen in de tabel deel uit van de huidige context. Als u meerdere tabellen hebt die zijn gekoppeld op basis van relaties en u werkt in een draaitabel die is gefilterd door kolomkoppen toe te voegen en Slicers te gebruiken, bevat de context de gerelateerde tabellen en eventuele filters op de gegevens.

Context is een krachtig concept dat het ook moeilijk kan maken om problemen met formules op te lossen. Het is raadzaam om te beginnen met eenvoudige formules en relaties om te zien hoe context werkt en vervolgens te experimenteren met eenvoudige formules in draaitabellen. In de volgende sectie vindt u ook enkele voorbeelden van hoe formules verschillende contexttypen gebruiken om resultaten dynamisch te retourneren.

Voorbeelden van context in formules

  • Met de functie RELATED wordt de context van de huidige rij uitgebreid met waarden in een gerelateerde kolom. Hiermee kunt u opzoekingen uitvoeren. Het voorbeeld in dit onderwerp illustreert de interactie tussen filteren en rijcontext.

  • Met de functie FILTER kunt u de rijen opgeven die u wilt opnemen in de huidige context. De voorbeelden in dit onderwerp illustreren ook hoe u filters kunt insluiten in andere functies die aggregaten uitvoeren.

  • Met de functie ALLES stelt u de context in een formule in. U kunt het gebruiken om filters te overschrijven die worden toegepast als gevolg van querycontext.

  • Met de functie ALLEXCEPT kunt u alle filters verwijderen, behalve de filters die u opgeeft. Beide onderwerpen bevatten voorbeelden die u helpen formules te maken en complexe contexten te begrijpen.

  • Met de functies EERDER en VROEGste kunt u door tabellen lopen door berekeningen uit te voeren, terwijl u verwijst naar een waarde uit een binnenste lus. Als u bekend bent met het concept van recursie en met binnenste en buitenste lussen, zult u de kracht van de functies EERDER en VROEGste waarderen. Als u deze concepten nieuw vindt, moet u de stappen in het voorbeeld zorgvuldig volgen om te zien hoe de binnen- en buitenste contexten worden gebruikt in berekeningen.

Naar boven

Referentiële integriteit

In deze sectie worden enkele geavanceerde concepten besproken met betrekking tot ontbrekende waarden in Power Pivot tabellen die zijn verbonden door relaties. Deze sectie kan handig voor u zijn als u werkmappen met meerdere tabellen en complexe formules hebt en hulp nodig hebt bij het begrijpen van de resultaten.

Als u nieuw bent in relationele gegevensconcepten, raden we u aan eerst het inleidende onderwerp Relatiesoverzicht te lezen.

Referentiële integriteit en Power Pivot relaties

Power Pivot vereist niet dat referentiële integriteit tussen twee tabellen wordt afgedwongen om een geldige relatie te definiëren. In plaats daarvan wordt een lege rij gemaakt aan het 'een'-einde van elke een-op-veel-relatie en wordt deze gebruikt om alle niet-overeenkomende rijen uit de gerelateerde tabel te verwerken. Het werkt effectief als een SQL outer join.

Als u in draaitabellen gegevens aan de ene kant van de relatie groepeert, worden niet-overeenkomende gegevens aan de vele zijden van de relatie gegroepeerd en worden ze opgenomen in totalen met een lege rijkoppen. De lege kop komt ongeveer overeen met het 'onbekende lid'.

Het onbekende lid begrijpen

Het concept van het onbekende lid is u waarschijnlijk bekend als u hebt gewerkt met multidimensionale databasesystemen, zoals SQL Server Analysis Services. Als de term nieuw voor u is, wordt in het volgende voorbeeld uitgelegd wat het onbekende lid is en wat de invloed is op berekeningen.

Stel dat u een berekening maakt die de maandelijkse verkoop voor elke winkel optelt, maar in een kolom in de tabel Verkoop ontbreekt een waarde voor de winkelnaam. Aangezien de tabellen voor Store en Verkoop zijn verbonden met de winkelnaam, wat zou u verwachten in de formule? Hoe moet de draaitabelgroep of de verkoopcijfers weergeven die niet zijn gerelateerd aan een bestaande winkel?

Dit probleem is veelvoorkomende in gegevensmagazijnen, waar grote tabellen met feitengegevens logisch moeten zijn gerelateerd aan dimensietabellen die informatie bevatten over winkels, regio's en andere kenmerken die worden gebruikt voor het categoriseren en berekenen van feiten. Als u het probleem wilt oplossen, worden nieuwe feiten die geen verband houden met een bestaande entiteit tijdelijk toegewezen aan het onbekende lid. Daarom worden niet-gerelateerde feiten gegroepeerd weergegeven in een draaitabel onder een lege kop.

Behandeling van lege waarden versus de lege rij

Lege waarden verschillen van de lege rijen die worden toegevoegd voor het onbekende lid. De lege waarde is een speciale waarde die wordt gebruikt voor null's, lege tekenreeksen en andere ontbrekende waarden. Zie Gegevenstypen ingegevensmodellen voor meer informatie over de lege waarde en andere DAX-gegevenstypen.

Naar boven

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×