Context in DAX-formules

Opmerking: We willen u graag zo snel mogelijk de meest recente Help-inhoud in uw eigen taal bieden. Deze pagina is automatisch vertaald en kan grammaticale fouten of onnauwkeurigheden bevatten. Wij hopen dat deze inhoud nuttig voor u is. Kunt u ons onder aan deze pagina laten weten of de informatie nuttig voor u was? Hier is het Engelstalige artikel ter referentie.

Context kunt u dynamische analyse, waarin de resultaten van een formule kunnen aangepast aan de huidige rij of cel selectie en ook alle gerelateerde gegevens uitvoeren. Lidmaatschap context en effectief gebruiken van de context zijn belangrijk is voor het samenstellen van krachtige formules, dynamische analyses, en voor het oplossen van problemen met formules.

In deze sectie wordt gedefinieerd voor de verschillende soorten context: rij context, querycontext en filtercontext. Dit artikel wordt uitgelegd hoe de context wordt geëvalueerd voor formules in berekende kolommen en in draaitabellen.

Het laatste onderdeel van dit artikel bevat koppelingen naar uitgebreide voorbeelden die aangeven hoe de resultaten van formules veranderen naargelang de context.

Lidmaatschap Context

Formules in Power Pivot kunnen worden beïnvloed door de filters zijn toegepast in een draaitabel door relaties tussen tabellen, naar en filters in formules gebruikt. Context is wat kunt u dynamische analyses uitvoeren. Lidmaatschap context is belangrijk voor bouwen en voor het oplossen van formules.

Er zijn verschillende soorten context: rij context, querycontext en filtercontext.

Rijcontext kan worden beschouwd als "de huidige rij." Als u een berekende kolom hebt gemaakt, wordt de rijcontext bestaat uit de waarden in elke rij met afzonderlijke en waarden in kolommen die zijn gerelateerd aan de huidige rij. Er zijn ook enkele functies (EARLIER en VROEGSTE) die een waarde krijgen van de huidige rij en gebruik vervolgens die waarde bij de bewerking over een hele tabel.

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

Filtercontext is de set waarden in elke kolom op basis van filter beperkingen die zijn toegepast op de rij of die zijn gedefinieerd door filterexpressies in de formule is toegestaan.

Naar boven

Rijcontext

Als u een formule in een berekende kolom maakt, 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 van die andere tabel die zijn gerelateerd aan de huidige rij.

Stel dat u een berekende kolom maken, = [Vrachtkosten] + [belasting],

, die worden opgeteld twee kolommen uit dezelfde tabel. Deze formule lijkt veel zoals formules in een Excel-tabel die automatisch verwijzen naar waarden in dezelfde rij. Houd er rekening mee dat tabellen is het verschil tussen bereiken: u kunt geen verwijzingen maken naar een waarde uit de rij voor de huidige rij met bereik-notatie en u kunt geen verwijzingen maken naar een willekeurige één waarde in een tabel of de cel. U moet altijd werken met tabellen en kolommen.

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

De volgende formule wordt bijvoorbeeld de verwante functie voor het ophalen van een waarde uit een gerelateerde tabel, op basis van het gebied dat de order is verzonden naar. De waarde van de belasting wordt bepaald door met behulp van de waarde voor de regio in de huidige tabel, de regio in de gerelateerde tabel opzoeken, en vervolgens het btw-tarief voor dat gebied in de gerelateerde tabel.

= [Vrachtkosten] + RELATED('Region'[TaxRate])

Deze formule krijgt gewoon het btw-tarief voor de huidige regio's uit de tabel regio. U hoeft niet te weten of de sleutel die de tabellen verbindt opgeven.

Context met meerdere rijen

Daarnaast bevat DAX-functies die doorgaan met het ontwikkelen van berekeningen voor een tabel. Deze functies kunnen hebben meerdere huidige rijen en de huidige rij contexten. U kunt formules die recurse via een binnenste en buitenste lus maken programming genoemd.

Stel dat uw werkmap bevat een tabel producten en een tabel verkoop . Wilt leest u over de hele tabel sales, dat wil vol transacties met betrekking tot verschillende producten zeggen, wellicht en de grootste hoeveelheid voor elk product in een één transactie hebt besteld zoeken.

Deze berekening moeten in Excel een reeks tussenliggende samenvattingen bevat, die opnieuw worden gemaakt moeten zou als de gegevens gewijzigd. Als u een ervaren gebruiker van Excel, is het mogelijk dat u kunnen maken van matrixformules die de taak zou doen. U kunt ook geneste subselects schrijven in een relationele database.

Echter met DAX kunt u een formule die resulteert in de juiste waarde bouwen en de resultaten worden automatisch bijgewerkt zodra die u gegevens aan de tabellen toevoegt.

=MAXX(filter(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

Zie voor een gedetailleerd overzicht van deze formule, de EARLIER.

EARLIER, functie opgeslagen Kortom, de rijcontext van de bewerking waarmee de huidige bewerking voorafgegaan. AT allen tijde de functie opgeslagen in het geheugen twee sets met context: één set context staat voor de huidige rij voor de binnenste lus van de formule en een andere set context voor de huidige rij voor de buitenste lus van de formule. DAX-waarden tussen de twee lussen automatisch feeds zodat u complexe aggregaties kan maken.

Naar boven

Querycontext

Querycontext verwijst naar de deelverzameling met gegevens die impliciet voor een formule zijn opgehaald. Wanneer u een maateenheid of andere waardeveld in een cel in een draaitabel plaatst, worden de engine Power Pivot onderzocht, de rij- en kolomkoppen, Slicers en rapportfilters om te bepalen de context. Power Pivot maakt vervolgens de benodigde berekeningen om te vullen elke cel in de draaitabel. De set gegevens die zijn opgehaald is de querycontext voor elke cel.

Omdat de context afwijken kan, afhankelijk van waar u de formule wilt plaatsen, wordt de uitkomst van de formule ook afhankelijk van of u de formule in een draaitabel met veel groeperingen en filters of in een berekende kolom met geen filters en de minimale context te gebruiken wijzigen.

Stel dat u deze eenvoudige formule maakt die de waarden in de kolom winst van de table:=SUM('Sales'[Profit]) Sales opgeteld.

Als u deze formule in een berekende kolom in de tabel Sales gebruikt , de resultaten van de formule niet hetzelfde is voor de volledige tabel, omdat de querycontext voor de formule altijd de hele gegevensset van de tabel Sales is . Uw resultaten heeft winst voor alle regio's, alle producten, alle jaren, enzovoort.

Echter meestal u niet wilt zien van hetzelfde resultaat honderden vaak, maar in plaats daarvan u wilt krijgen van de winst voor een bepaald jaar, een bepaald land of regio, een bepaald product of een combinatie van deze en klikt u vervolgens een eindtotaal te verkrijgen.

In een draaitabel is het gemakkelijk context wijzigen door het toevoegen of verwijderen van de kolomkoppen en rijkoppen en toevoegen of verwijderen van Slicers. U kunt een formule zoals hierboven, in een meting maken en kopieer deze naar een draaitabel. Wanneer u een kolom- of rijkoppen aan de draaitabel toevoegt, kunt u de querycontext waarin de eenheid wordt geëvalueerd wijzigen. Segmenteren en filteren bewerkingen ook invloed op de context. Dezelfde formule, die wordt gebruikt in een draaitabel wordt daarom geëvalueerd in de context van een andere query voor elke cel.

Naar boven

Filtercontext

Filtercontext wordt toegevoegd als u een filter beperkingen bij de set waarden die zijn toegestaan in een kolom of tabel, met behulp van de argumenten in een formule opgeeft. Filtercontext is van toepassing boven aan de andere contexten, zoals rijcontext of querycontext.

Bijvoorbeeld de waarden voor elke cel op basis van de rij- en kolomkoppen, zoals wordt beschreven in de vorige sectie op querycontext worden berekend in een draaitabel. Echter binnen de eenheden of berekende kolommen die u aan de draaitabel toevoegt, kunt u opgeven of filterexpressies om te bepalen de waarden die worden gebruikt door de formule bevat. U kunt de filters van bepaalde kolommen ook selectief wissen.

Zie de filterfunctiesvoor meer informatie over het maken van filters binnen formules.

Zie voor een voorbeeld van de manier waarop filters kunnen worden gewist om eindtotalen te creëren, de alle.

Zie de Functie ALLEXCEPTvoor voorbeelden van hoe u selectief kunt wissen en toepassen van filters binnen formules.

U dient daarom de definitie van metingen of formules die worden gebruikt in een draaitabel, zodat u zich bewust bent van filtercontext wanneer u de resultaten van formules interpreteert controleren.

Naar boven

Context in formules bepalen

Wanneer u een formule maakt, Power Pivot voor Excel eerst Hiermee wordt gecontroleerd op de syntaxis van de algemene en vervolgens de namen van kolommen en tabellen die u tegen mogelijke kolommen opgeeft en tabellen in de huidige context gecontroleerd. Als Power Pivot niet beschikt over de kolommen en tabellen die zijn opgegeven door de formule, krijgt u een fout.

Context wordt bepaald zoals is beschreven in de voorgaande gedeelten, namelijk met de tabellen in de werkmap, relaties tussen de tabellen en eventuele filters die zijn toegepast.

Als u alleen bepaalde gegevens in een nieuwe tabel hebt geïmporteerd en eventuele filters niet hebt toegepast, is de volledige reeks kolommen in de tabel bijvoorbeeld deel uit van de huidige context. Als er meerdere tabellen die zijn gekoppeld door relaties en u werkt in een draaitabel die is gefilterd door het toevoegen van kolomkoppen en Slicers gebruikt, wordt de context bevat de gerelateerde tabellen en eventuele filters in de gegevens.

Context is een krachtige concept zodat kunt ook het moeilijk om op te lossen van formules. Het is raadzaam dat u beginnen met eenvoudige formules en relaties om te zien hoe de context werkt en breng de gewenste wijzigingen experimenteren met eenvoudige formules in draaitabellen. De volgende sectie bevat ook enkele voorbeelden van hoe formules verschillende soorten context gebruiken dynamisch om resultaten te retourneren.

Voorbeelden van Context in formules

  • De verwante functie wordt uitgebreid met de context van de huidige rij als u waarden in een gerelateerde kolom. Hiermee kunt u zoekacties uitvoeren. Het voorbeeld in dit onderwerp worden de interactie tussen filteren en rij context.

  • De functie FILTER kunt u opgeven van de rijen wilt opnemen in de huidige context. De voorbeelden in dit onderwerp ziet ook het insluiten van filters binnen andere functies die aggregaties uitvoeren.

  • De functie ALL Hiermee stelt u context binnen een formule. U kunt deze filters die worden toegepast als resultaat van een querycontext overschrijven.

  • De functie ALLEXCEPT kunt u alle filters behalve de machtiging die u opgeeft verwijderen. Beide onderwerpen bevatten voorbeelden waarmee u door het samenstellen van formules en het begrip van complexe contexten.

  • De EARLIER en VROEGSTE functies kunt u tabellen door het uitvoeren van berekeningen, terwijl het verwijst naar een waarde uit een binnenste lus doorlopen. Als u bekend met het concept van het recursieniveau op te geven en met binnenste en buitenste lus bent, wordt u de kracht waarmee de functies EARLIER en VROEGSTE waarderen. Als u eerder met deze concepten, moet u de stappen in het voorbeeld zorgvuldig door om te zien hoe de binnenste en buitenste contexten in berekeningen worden gebruikt.

Naar boven

Referentiële integriteit

In deze sectie wordt beschreven hoe sommige geavanceerde concepten die betrekking hebben op ontbrekende waarden in Power Pivot tabellen die zijn verbonden door relaties. In deze sectie mogelijk nuttige informatie voor als u werkmappen met meerdere tabellen en complexe formules en help in de informatie over de resultaten wilt.

Als u eerder met relationele-gegevensconcepten, wordt u aangeraden eerst het inleidende onderwerp, Overzicht van relatieste lezen.

Referentiële integriteit en Power Pivot relaties

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

In draaitabellen, als u gegevens op de een-kant van de relatie groeperen, niet-gerelateerde gegevens aan de veel-kant van de relatie is gegroepeerd en worden opgenomen in totalen met de kop van een lege rij. De kop van de leeg is ongeveer gelijk is aan de 'onbekend lid".

Het onbekende onderdeel

Het concept van het onbekende onderdeel is waarschijnlijk bekend zijn voor u, als u hebt gewerkt op basis van multidimensionale databasesystemen, zoals SQL Server Analysis Services. Als de term nieuw voor u is, geeft het volgende voorbeeld wordt uitgelegd van wat het onbekende onderdeel is en hoe dit van invloed op berekeningen.

Stel dat u maakt een berekening waarin de som van verkoop per maand voor elke winkel, maar een kolom in de tabel Sales een waarde voor de naam van de store ontbreekt. Gezien het feit dat de tabellen voor het Opslaan en verkoop ingevoegd als formulier met de naam van de store, wat zou u verwachten veroorzaken, in de formule? Hoe moet de draaitabel groeperen of de verkoopcijfers die niet zijn gerelateerd aan een bestaand archief weer te geven?

Dit probleem is een algemene in datawarehouses, waarbij grote tabellen van feitelijke gegevens moeten logisch kan zijn gerelateerd aan dimensietabellen met informatie over winkels, regio's en andere kenmerken die worden gebruikt voor het categoriseren en het berekenen van feiten. Als u wilt het probleem is opgelost, nieuwe feiten die gerelateerd aan een bestaande entiteit zijn tijdelijk aan het onbekende onderdeel toegewezen. Daarom niet-gerelateerde gegevens gegroepeerd in een draaitabel onder een lege kop wordt weergegeven.

Behandeling van lege waarden versus de lege rij

Lege waarden zijn anders dan de lege rijen die worden toegevoegd aan het onbekende onderdeel. De waarde leeg is een speciale waarde die wordt gebruikt om aan te geven null-waarden, lege tekenreeksen en andere ontbrekende waarden. Zie gegevenstypen in gegevensmodellenvoor meer informatie over de waarde leeg, evenals andere DAX-gegevenstypen.

Naar boven

Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×