Snelstartgids: informatie over de grondbeginselen van DAX in 30 minuten

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.

Deze snelstartgids is bedoeld voor gebruikers die Power Pivot in Excel of de tabellaire modelprojecten die in SQL Server Data Tools zijn gemaakt, nog niet kennen. De snelstartgids biedt een snelle en gemakkelijke inleiding tot het gebruiken van DAX (Data Analysis Expressions) om een aantal basisproblemen met gegevensmodellen en analyses op te lossen. Dit onderwerp bevat conceptuele informatie, een reeks taken die u kunt uitvoeren en een aantal quizzen om te testen wat u hebt geleerd. Na voltooiing van dit onderwerp hebt u een goed inzicht in de basisconcepten die in DAX worden toegepast.

Wat is DAX?

DAX is een verzameling functies, operatoren en constanten die in een formule of expressie kunnen worden gebruikt om één of meerdere waarden te berekenen en te retourneren. Simpel gezegd, met DAX kunt u nieuwe informatie genereren uit de gegevens die zich reeds in uw model bevinden.

Waarom DAX zo is belangrijk?

Het is niet moeilijk om een werkmap te maken en er gegevens in te importeren. En u kunt ook zonder DAX-formules te gebruiken draaitabellen of draaigrafieken maken die belangrijke informatie bieden. Maar wat doet u als u kritieke verkoopgegevens van verschillende productcategorieën en in verschillende perioden moet analyseren? Of als u belangrijke voorraadgegevens uit verschillende tabellen verspreid over verschillende gegevensbronnen moet combineren? DAX-formules bieden niet alleen deze voorzieningen, maar ook veel andere belangrijke mogelijkheden. Als u weet hoe u effectieve DAX-formules kunt maken, kunt u optimaal gebruikmaken van de beschikbare gegevens. Wanneer u beschikt over de informatie die u nodig hebt, kunt u beginnen met het oplossen van de echte problemen die van invloed zijn op het bedrijfsresultaat. Dat noemen we Business Intelligence, en DAX kan u er bij helpen.

Vereisten

U bent wellicht al redelijk bekend met het maken van formules in Microsoft Excel. Deze kennis kan u van pas komen bij het leren begrijpen van DAX, maar zelfs als u geen ervaring met Excel-formules hebt, kunt u aan de hand van de hieronder beschreven concepten aan de slag te gaan met het maken van DAX-formules en direct de echte BI-problemen oplossen.

We gaan focus specifiek op lidmaatschap DAX-formules in berekeningen gebruikt. U moet al vertrouwd zijn met de grondbeginselen van berekende kolommen en metingen (ook wel bekend als berekende velden), die beide worden beschreven in Power Pivot Help. U moet ook vertrouwd met de Power Pivot in Excel ontwerpomgeving en hulpmiddelen voor zijn.

Voorbeeldwerkmap

De beste manier om te leren werken met DAX is het maken van enkele basisformules, deze toe te passen op enkele echte praktijkgegevens en vervolgens de resultaten te bekijken. In de voorbeelden en taken in dit onderwerp wordt de werkmap Contoso Sample DAX Formulas.xlsx gebruikt. U kunt de werkmap downloaden van http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. Download de werkmap naar uw computer, open de werkmap en open vervolgens het Power Pivot-venster.

U kunt nu beginnen.

We bespreken DAX in de context van drie zeer belangrijke fundamentele concepten: syntax, functies en context. Natuurlijk zijn er andere belangrijke concepten in DAX, maar als u deze drie concepten begrijpt, beschikt u over de beste basis voor het ontwikkelen van uw DAX-vaardigheden.

Syntaxis

Voordat u uw eigen formules gaat maken, kijken we eerst hoe de syntaxis van de DAX-formules is opgebouwd. De syntaxis bevat diverse elementen waaruit een formule is opgebouwd, met andere woorden: hoe de formule wordt geschreven. Hieronder ziet u een eenvoudige DAX-formule die wordt gebruikt om nieuwe gegevens (waarden) te maken voor elke rij in de berekende kolom Margin, in de tabel FactSales: (de kleuren van de formuletekst zijn alleen voor illustratieve doeleinden)

Formule voor berekende kolom

De syntaxis van deze formule bevat de volgende elementen:

  1. Het gelijkteken (=) geeft het begin van de formule aan en wanneer deze formule wordt berekend, wordt er een uitkomst of een waarde geretourneerd. Alle formules waarmee een waarde wordt berekend, beginnen met een gelijkteken.

  2. De kolom [SalesAmount] waarnaar wordt verwezen, bevat de waarden waarvan we een waarde willen aftrekken. Een kolomverwijzing in een formule wordt altijd ingesloten door vierkante haakjes []. In tegenstelling tot Excel-formules, waarin naar een cel wordt verwezen, verwijst een DAX-formule altijd naar een kolom.

  3. De wiskundige operator (-), het minteken.

  4. De kolom [TotalCost] waarnaar wordt verwezen, bevat de waarden die we van de waarden in de kolom [SalesAmount] willen aftrekken.

Om te bepalen hoe u een DAX-formule moet lezen, is het handig om elk van de elementen te ontleden in de taal die u elke dag spreekt. U kunt deze formule bijvoorbeeld lezen als:

Bereken (=) in de tabel FactSales voor elke rij in de berekende kolom Margin een waarde door de waarden in de kolom [TotalCost] af te trekken (-) van waarden in de kolom [SalesAmount].

Laten we gaat u naar een ander type formule, dat wordt gebruikt in een maateenheid:

Formule voor berekende kolom

De syntaxis van deze formule bevat de volgende elementen:

  1. De naam van de maateenheid Sum of Sales Amount. Formules voor eenheden kunnen de maateenheidnaam van de, gevolgd door een dubbele punt, gevolgd door de berekeningsformule opnemen.

  2. Het gelijkteken (=) geeft het begin van de berekeningsformule aan. Wanneer de berekening is voltooid, wordt er een resultaat geretourneerd.

  3. De functie SUM telt alle getallen in de kolom [SalesAmount] bij elkaar op. Functies worden later besproken.

  4. Ronde haakjes () omsluiten één of meer argumenten. Voor all functies is ten minste één argument vereist. Een argument geeft een waarde door aan een functie.

  5. De tabel FactSales waarnaar wordt verwezen.

  6. De kolom [SalesAmount] waarnaar wordt verwezen in de tabel FactSales. Op basis van dit argument weet de functie SUM voor welke kolom een SUM (totaal) moet worden berekend.

U kunt deze formule lezen als:

Voor de eenheid met de naam Sum of Sales Amount, bereken (=) de som van waarden de [ SalesAmount ] kolom in de FactSales tabel.

Wanneer in geplaatst de waarden neerzetgebied voor afbeeldingen in een lijst met draaitabelvelden, wordt deze maateenheid berekent en geeft als resultaat de waarden die is gedefinieerd door elke cel in de draaitabel, bijvoorbeeld, mobiele telefoons in de Verenigde Staten.

U ziet dat deze formule op een aantal punten verschilt van de formule die we voor de berekende kolom Margin hebben gebruikt. Het meest opvallende is de introductie van de functie SUM. Functies zijn vooraf geschreven formules waarmee u niet alleen eenvoudiger complexe berekeningen kunt uitvoeren maar ook getallen, datums, tijden en tekst kunt manipuleren, en nog veel meer. Functies worden later besproken.

In tegenstelling tot de berekende kolom Margin eerder, ziet u dat de kolom [SalesAmount] is worden voorafgegaan door de tabel FactSales waarin de kolom behoort. Dit is een volledig gekwalificeerde kolomnaam genoemd in dat deze de naam van de kolom worden voorafgegaan door de naam van de tabel bevat. Kolommen waarnaar wordt verwezen in dezelfde tabel hoeven niet in de naam van de tabel worden opgenomen in de formule. Dit kan lang formules die verwijzen naar veel kolommen korter en beter leesbaar maken. Het is echter goede gewoonte om op te nemen altijd de naam van de tabel in uw formules meten, zelfs in dezelfde tabel.

Opmerking: Als de naam van een tabel spaties, gereserveerde sleutelwoorden of niet-toegestane tekens bevat, moet u de tabelnaam tussen enkele aanhalingstekens zetten. U moet tevens tabelnamen tussen aanhalingstekens zetten als de naam tekens bevat die buiten het alfanumerieke ANSI-tekenbereik vallen, ongeacht of uw landinstelling het teken ondersteunt.

Het is heel belangrijk dat de syntaxis van uw formules correct is. In de meeste gevallen wordt, als de syntaxis niet correct is, een syntaxisfout geretourneerd. Het is ook mogelijk dat de syntaxis wel juist is, maar geretourneerde waarden niet aan uw verwachtingen voldoen. Power Pivot (en SQL Server Data Tools) beschikken over IntelliSense, een functie die u helpt de juiste elementen te selecteren, zodat de formules die u maakt, syntactisch juist zijn.

We gaan nu een eenvoudige formule maken. Deze taak is bedoeld om de syntaxis van formules nog beter te leren begrijpen en te zien hoe de functie IntelliSense op de formulebalk u hierbij kan helpen.

Taak: maak een eenvoudige formule voor een berekende kolom

  1. Als het venster Power Pivot-venster nog niet is geopend, klikt u in Excel op het Power Pivot-lint op Power Pivot-venster.

  2. Klik in het Power Pivot-venster op het tabblad van de tabel FactSales.

  3. Schuif naar de meest rechtse kolom en klik op Kolom toevoegen in de kolomkop.

  4. Klik op de formulebalk boven in het modelontwerpervenster.

    PowerPivot-formulebalk

    De cursor wordt nu weergegeven op de formulebalk. De formulebalk is de locatie waar u een formule voor een berekende kolom of een berekend veld kunt typen.

    Links van de formulebalk ziet u drie knoppen.

    Formula bar

    Wanneer de aanwijzer actief is in de formulebalk, worden deze drie knoppen ook geactiveerd. De meest linkse knop, X, is een annuleringsknop. Klik op deze knop. De cursor wordt niet langer weergegeven op de formulebalk, evenmin als de annuleringsknop en de controletekenknop. Ga door en klik opnieuw op de formulebalk. De annuleringsknop en de controletekenknop worden opnieuw weergegeven. Dit betekent u kunt beginnen met het invoeren van een formule.

    De controletekenknop is de knop voor het controleren van de formule. Zolang u geen formule hebt ingevoerd, doet deze knop niets. We komen hier later kort op terug.

    Klik op de Fx -knop. U ziet dat is een nieuwe dialoogvenster wordt weergegeven. het dialoogvenster functie invoegen. Het dialoogvenster functie invoegen is de eenvoudigste manier om aan de slag een DAX-formule invoert. Wanneer we een maateenheid iets later maken, maar nu u niet hoeft een functie toevoegen aan uw formule voor berekende kolom, zullen we een functie toevoegen aan een formule. Verdergaan en sluit het dialoogvenster functie invoegen.

  5. Typ in de formulebalk een gelijkteken (=) en typ daarna een vierkante openingshaak [. Er wordt een klein venster weergegeven met daarin alle kolommen van de tabel FactSales. Dit is IntelliSense in actie.

    Omdat berekende kolommen altijd in de actieve tabel worden gemaakt, hoeft u de kolomnaam niet te laten voorafgaan door de tabelnaam. Schuif nu omlaag en dubbelklik op [SalesQuantity]. U kunt ook naar de kolomnaam schuiven en vervolgens op Tab drukken.

    De cursor is nu rechts van [SalesQuantity] actief.

  6. Typ een spatie, gevolgd door een minteken, en typ daarna nog een spatie.

  7. Typ nu nog een vierkante openingshaak [. Selecteer deze keer de kolom [ReturnQuantity] en druk op Enter.

    Als er een foutberichtwordt weergegeven, bekijkt u zorgvuldig de syntaxis van uw formule. Vergelijk indien nodig uw syntaxis met die van de formule in de eerder beschreven berekende kolom Margin.

    Nadat u op Enter hebt gedrukt om de formule te voltooien, wordt het woord Berekenen weergegeven op de statusbalk onder in het Power Pivot-venster . Dit gaat snel, zelfs als u zojuist nieuwe waarden voor meer dan drie miljoen rijen hebt berekend.

  8. Klik met de rechtermuisknop op de kolomkop en wijzig de naam van de kolom in NetSales.

Klaar! U hebt zojuist een eenvoudige maar zeer krachtige DAX-formule gemaakt. De NetSales-formule berekent voor elke rij in de tabel FactSales een waarde door de waarde in de kolom [ReturnQuantity] af te trekken van de waarde in de kolom [SalesQuantity]. U ziet dat we de nadruk leggen op “voor elke rij”. Dit is een verwijzing naar een ander zeer belangrijk concept in DAX, de rijcontext. De rijcontext worden later besproken.

Er is iets heel belangrijk is voor het begrijpen bij het typen van een operator in een DAX-formule het gegevenstype in de argumenten die u gebruikt. Bijvoorbeeld als u de volgende formule typt, = 1 en 2, de waarde die het resultaat is een tekstveld de tekstwaarde van "12". Dit is omdat het ampersandteken (&) voor samenvoegingsoperatoren. DAX interpreteert deze formule lezen: een resultaat berekenen door de waarde 1 als tekst en de waarde 2 als tekst toevoegen. Als u bent met het typen van 1 + 2, = DAX leest deze formule als: een resultaat berekenen door te nemen de numerieke waarde 1 en de numerieke waarde 2 toe te voegen. Het resultaat is natuurlijk "3", een numerieke waarde. DAX resulterende waarden afhankelijk van de operator in de formule niet is gebaseerd op het gegevenstype van de kolommen die worden gebruikt in het argument worden berekend. Gegevenstypen in DAX zeer belangrijk zijn, maar buiten het bereik van deze aan de slag. Meer informatie over gegevenstypen en operatoren in DAX-formules, raadpleegt u referentie voor DAX (http://go.microsoft.com/fwlink/?LinkId=239769 & clcid = 0x409) in Books Online.

Laten we eens proberen andere. Schakel ditmaal maakt u een maateenheid met de formule typt en met behulp van IntelliSense. U hoeft niet te veel als u niet precies weet hoe de formule. Het belangrijkste hier is voor meer informatie over het maken van een formule waarin verschillende elementen die samen in de juiste syntaxis.

Taak: Maak een formule maateenheid

  1. Klik in de tabel FactSales op een lege cel ergens in het berekeningsgebied. Dit is het gebied met lege cellen direct onder een tabel in het Power Pivot-venster.

PowerPivot-berekeningsgebied

  1. Typ de naam Previous Quarter Sales: in de formulebalk.

  2. Typ het gelijkteken = als eerste teken in de berekeningsformule.

  3. Typ de eerste drie letters, CAL, en dubbelklik op de functie u wilt gebruiken. In deze formule wilt u de functie CALCULATE gebruiken.

  4. Typ een rond openingshaakje ( om hierachter de argumenten te typen die aan de functie CALCULATE moeten worden doorgegeven).

    Nadat u het ronde openingshaakje hebt getypt, geeft IntelliSense de vereiste argumenten voor de functie CALCULATE weer. Een stukje verderop zullen we meer vertellen over argumenten.

  5. Typ de eerste letters van de tabel FactSales en dubbelklik vervolgens in de vervolgkeuzelijst FactSales [Sales].

  6. Typ een komma (,) om het eerste filter op te geven en typ vervolgens PRE. Dubbelklik hierna op de functie PREVIOUSQUARTER.

    Nadat u de functie PREVIOUSQUARTER hebt geselecteerd, wordt er nog een rond openingshaakje weergegeven. Dit betekent dat er nog een ander argument is vereist, dit keer voor de functie PREVIOUSQUARTER.

  7. Typ de eerste drie letters, Dim, en dubbelklik op DimDate[DateKey].

  8. Sluit zowel het argument dat aan de functie PREVIOUSQUARTER wordt doorgegeven als de functie CALCULATE af door twee ronde afsluithaakjes te typen: )).

    De formule ziet er nu als volgt uit:

    Previous Quarter Sales:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey]))

  9. Klik op de knop voor het controleren van de formule op de formulebalk, om de formule te valideren. Als er een foutbericht wordt weergegeven, controleert u alle elementen van de syntaxis.

U hebt deze! U een maateenheid met DAX en niet een eenvoudig eigenschap aan die net hebt gemaakt. Wat deze formule doet, wordt de totale omzet berekenen van het vorige kwartaal, afhankelijk van de filters zijn toegepast in een draaitabel of draaigrafiek.

U hebt nu leren werken met diverse belangrijkste aspecten van DAX-formules. U hebt een formule gemaakt met twee functies. Merk op dat de functie PREVIOUSQUARTER is genest als argument voor de functie CALCULATE. DAX-formules kunnen maximaal 64 geneste functies bevatten. Het is niet waarschijnlijk dat u ooit een formule zult maken met zo veel geneste functies. Het is niet alleen zeer moeilijk een dergelijke formule te maken en eventuele fouten er in te opsporen, maar de formule zal waarschijnlijk ook bepaald niet erg snel zijn.

In deze formule hebt u ook filters gebruikt. Een filter zorgt voor een begrenzing van wat er wordt berekend. In dit geval hebt u een filter geselecteerd als een argument, dat in feite een andere functie is. Filters worden later besproken.

Tot slot hebt u de functie CALCULATE gebruikt. Dit is een van de krachtigste functies in DAX. Bij het maken van gegevensmodellen en complexere formules zult u deze functie waarschijnlijk vaak gebruiken. Een bespreking van de functie CALCULATE valt buiten het kader van deze QuickStart, maar we raden u aan naarmate u meer met DAX gaat werken met name aandacht aan deze functie te besteden.

Opmerking: Als u tijdintelligente functies in DAX-formules wilt gebruiken, moet u een unieke datumkolom opgeven in het dialoogvenster Als datumtabel markeren. In de werkmap Contoso DAX Formula Samples.xlsx wordt de kolom DateKey als unieke datumkolom geselecteerd in de tabel DimDate.

Extra punten

U mag worden gevraagd: 'Wat is de eenvoudigste DAX-formule ik kunt maken?' Het antwoord op die is ook 'de formule die u niet hoeft te'. En dat precies is wat u kunt doen met behulp van een functie standaardaggregatie dat in een maateenheid. Vrijwel alle gegevensmodel nodig heeft om te filteren en op geaggregeerde gegevens berekenen. De functie SOM in de Sum of Sales Amount maateenheid die u eerder hebt gezien wordt bijvoorbeeld gebruikt om alle getallen in een bepaalde kolom op te tellen. DAX bevat diverse andere functies die worden samengevoegd waarden ook. U kunt automatisch formules maakt met standaard aggregaties met behulp van de functie AutoSum.

Taak voor extra punten: Een maateenheid-formule maken met behulp van de functie AutoSum

  1. Schuif in de tabel FactSales naar de kolom ReturnQuantity en klik op de kolomkop om de hele kolom te selecteren.

  2. Klik op het tabblad Start , klik op het lint in de groep berekeningen op de knop AutoSom .

AutoSom in PowerPivot

Klik op de pijl-omlaag naast AutoSumen klik vervolgens op Average (Let op de andere standaardaggregatiefuncties die u kunt gebruiken).

Direct, een nieuwe meting wordt gemaakt met de naam Average of ReturnQuantity: gevolgd door de formule = AVERAGE([ReturnQuantity]).

Was dat eenvoudig of niet? Natuurlijk zijn niet alle formules die u kunt gebruiken zo eenvoudig. Maar gelukkig kunt u met de functie AutoSum aan de hand van standaard aggregatieberekeningen snel en eenvoudig formules maken.

U hebt nu een redelijk goed inzicht in de syntaxis die in DAX-formules wordt gebruikt. U hebt tevens kennis gemaakt met sommige zeer interessante functies zoals IntelliSense en AutoSum, waarmee u snel en eenvoudig accurate formules kunt maken. Natuurlijk is er nog veel meer dat u kunt leren over de syntaxis. De DAX-naslag of SQL Books Online zijn elk een goede bron van informatie als u meer wilt weten.

QuickQuiz over syntaxis

  1. Wat gebeurt er met deze knop op de formulebalk?
    Functieknop

  2. Waardoor wordt een kolomnaam in een DAX-formule altijd omsloten?

  3. Hoe zou u schrijven een formule voor de volgende handelingen uit:
    In de DimProduct tabel voor elke rij in de UnitMargin berekende kolom een waarde berekenen door af te trekken van waarden in de UnitCost kolom van de waarden in de prijs per eenheid kolom?

De antwoorden worden gegeven aan het eind van dit onderwerp.

Functies

Functies zijn vooraf gedefinieerde formules die berekeningen uitvoeren met specifieke waarden (de argumenten) die in een bepaalde volgorde of structuur zijn opgegeven. De argumenten kunnen andere functies, een andere formule, kolomverwijzingen, getallen, tekst, logische waarden zoals TRUE of FALSE, of constanten zijn.

DAX bevat de volgende functiecategorieën: Datum en Tijd, Informatie, Logisch, Wiskundig, Statistisch, Tekst en Tijdintelligente functies. Als u bekend bent met de functies in Excel-formules, zullen veel van de functies in DAX u bekend voorkomen. Echter, de DAX-functies zijn op een aantal punten uniek:

  • Een DAX-functie verwijst altijd naar een complete kolom of een tabel. Als u alleen specifieke waarden van een tabel of kolom wilt gebruiken, kunt u filters toevoegen aan de formule.

  • Als u berekeningen per rij wilt aanpassen, biedt DAX functies waarmee u de huidige rijwaarde of een gerelateerde waarde als een soort argument kunt gebruiken om berekeningen uit te voeren die naar gelang de context variëren. Context wordt later besproken.

  • DAX bevat veel functies die een tabel retourneren als resultaat, in plaats van een waarde. De tabel wordt niet weergegeven, maar wordt gebruikt als invoer voor andere functies. U kunt bijvoorbeeld een tabel ophalen en vervolgens de unieke waarden in de tabel tellen, of dynamische totalen in gefilterde tabellen of kolommen berekenen.

  • DAX bevat een verscheidenheid aan tijdintelligente functies. Met deze functies kunt u een datumbereik definiëren of selecteren en op basis van daarvan dynamische berekeningen uitvoeren. U kunt bijvoorbeeld totalen vergelijken voor parallel lopende perioden.

Het is soms moeilijk te zien welke functies die u wilt gebruiken in een formule. Power Pivoten de ontwerpfunctie tabelmodel in SQL Server Data Tools, bevatten de functie functie invoegen, een dialoogvenster kunt u functies per categorie selecteren en bevat een korte beschrijving voor elke functie.

Functie invoegen

We gaan nu een nieuwe formule maken met een functie die u selecteert met de functie Functie invoegen:

Taak: voeg met de functie Functie invoegen een functie toe aan een formule

  1. Schuif naar de meest rechtse kolom en klik vervolgens in de kolomkop, klik op Kolom toevoegenin de tabel FactSales.

  2. Typ een gelijkteken, =, in de formulebalk.

  3. Klik op de knop Functie invoegen . Functie invoegen Hiermee opent u het dialoogvenster Functie invoegen .

  4. Klik op de vervolgkeuzelijst Selecteer een categorie in het dialoogvenster Functie invoegen . Standaard Alles is geselecteerd en alle functies in de categorie alle hierna volgen. Dat is een groot aantal functies, dus wilt u de filterfuncties om eenvoudiger te vinden van het type van de functie die u zoekt.

  5. Voor deze formule, die u wilt retourneren sommige gegevens die al in een andere tabel. Voor die gaat u een functie gebruiken in de categorie Filter. Verdergaan en klikt u op de categorie Filter en klik vervolgens in een functie selecteert, schuif omlaag en dubbelklik op de verwante functie. Klik op Ok om het dialoogvenster Functie invoegen te sluiten.

  6. Gebruik IntelliSense om de kolom DimChannel[ChannelName] te zoeken en te selecteren.

  7. Sluit de formule en druk op Enter.

  8. Nadat u op Enter hebt gedrukt om de formule te voltooien, wordt het woord Berekenen op de statusbalk onder in het Power Pivot-venster weergegeven. U hebt nu een nieuwe kolom gemaakt in de tabel FactSales, met kanaalinformatie uit de tabel DimChannel.

  9. Wijzig de naam van de kolom in Channel.

    Als het goed is, ziet uw formule er als volgt uit: =RELATED(DimChannel [ChannelName])

U hebt zojuist kennisgemaakt met een andere zeer belangrijke functie in DAX, namelijk de functie RELATED. Met de functie RELATED worden waarden uit een andere tabel geretourneerd. U kunt RELATED alleen gebruiken als er een relatie bestaat tussen de tabel waarin u zich bevindt en de tabel die de waarden bevat die u wilt ophalen. De functie RELATED biedt zeer veel mogelijkheden. In dit geval kunt u het verkoopkanaal voor elke verkoop in de tabel FactSales opnemen. U kunt de tabel DimChannel in de lijst met draaitabelvelden verbergen, waardoor alleen de belangrijkste informatie, die u echt nodig hebt, wordt weergegeven en u gemakkelijker kunt navigeren. Net als de hiervoor beschreven functie CALCULATE, is de functie RELATED een zeer belangrijke functie die u waarschijnlijk vaak zult gebruiken.

Zoals u kunt zien, kunnen de functies in DAX u helpen bij het maken van zeer krachtige formules. We hebben nu nog slechts de basisbeginselen van functies besproken. Naarmate uw DAX-vaardigheden verder toenemen, zult u steeds vaker formules met veel verschillende functies maken. Een van de beste bronnen van informatie over alle DAX-functies is de Naslag voor Data Analysis Expressions (DAX).

QuickQuiz over functies

  1. Waar verwijst een functie altijd naar?

  2. Kan een formule meer dan één functie bevatten?

  3. Welke functiecategorie zou u gebruiken voor het samenvoegen van twee tekstreeksen tot één tekstreeks?

De antwoorden worden gegeven aan het eind van dit onderwerp.

Context

Context is een van de belangrijkste concepten in DAX die u moet kennen. Er zijn twee verschillende soorten context in DAX: rijcontext en filtercontext. We zullen eerst de rijcontext bespreken.

Rijcontext

U kunt de rijcontext het beste zien als de huidige rij. Kunt u zich bijvoorbeeld nog de berekende kolom Margin herinneren die we eerder in het kader van de syntaxis hebben besproken? De formule =[SalesAmount] - [TotalCost] berekent voor elke rij in de tabel een waarde in de kolom Margin. De waarden voor elke rij worden berekend aan de hand van waarden in twee andere kolommen in dezelfde rij, [SalesAmount] en [TotalCost]. DAX kan de waarden voor elke rij in de kolom Margin berekenen omdat de rij context heeft: DAX neemt voor elke rij de waarden in de kolom [TotalCost] en trekt deze af van de waarden in de kolom [SalesAmount].

In de geselecteerde cel die hieronder wordt weergegeven, is de waarde $49,54 in de huidige rij berekend door de waarde $51,54 in de kolom [TotalCost] af te trekken van de waarde $101,08 in de kolom [SalesAmount].

Rijcontext in PowerPivot

Rijcontext niet alleen van toepassing op berekende kolommen. Rijcontext is ook van toepassing wanneer een formule een functie die van toepassing filters bevat is voor een enkele rij in een tabel. De functie wordt de rijcontext van een voor elke rij van de tabel aanduidt waarop deze is filteren per definitie toepassen. Dit soort rijcontext is meestal van toepassing op eenheden.

Filtercontext

Filtercontext is iets ingewikkelder dan rijcontext. U kunt de filtercontext het beste zien als: een of meer filters die worden toegepast in een berekening die een resultaat of een waarde oplevert.

De filtercontext vervangt niet de rijcontext, maar wordt toegepast in aanvulling op de rijcontext. Als u bijvoorbeeld de waarden die u in een berekening wilt opnemen verder wilt beperken, kunt u een filtercontext toepassen waarmee niet alleen de rijcontext wordt gespecificeerd, maar ook een bepaalde waarde (filter) in die rijcontext.

De filtercontext is het meest duidelijk in draaitabellen. Wanneer u bijvoorbeeld TotalCost toevoegt aan het gebied Waarden en vervolgens Year en Region toevoegt aan de rij of kolommen, definieert u een filtercontext waardoor een subset van gegevens wordt geselecteerd op basis van een bepaald jaar en een bepaalde regio.

Waarom is filtercontext naar DAX zo is belangrijk? Omdat, terwijl filtercontext kan eenvoudig worden toegepast door kolom en rijlabels en slicers in een draaitabel toe te voegen, filtercontext kan ook worden toegepast in een DAX-formule door het definiëren van een filter met functies zoals alles, gerelateerde, FILTEREN, berekenen door relaties, en door andere metingen en kolommen. Bijvoorbeeld: Bekijk de volgende formule in een maateenheid met de naam StoreSales:

Formule

Deze formule is duidelijk ingewikkelder dan enkele andere formules die u hebt gezien. Om deze formule beter te begrijpen, kunnen we de formule ontleden, zoals we ook hebben gedaan met andere formules.

De syntaxis van deze formule bevat de volgende elementen:

  1. De naam van de maateenheid, StoreSales, gevolgd door een dubbele punt:.

  2. Het gelijkteken (=) geeft het begin van de formule aan.

  3. De functie CALCULATE evalueert een expressie als een argument, in een context die door de opgegeven filters is aangepast.

  4. Ronde haakjes () omsluiten één of meer argumenten.

  5. Een maateenheid [Sales] in dezelfde tabel als een expressie. De verkoop-eenheid bevat de formule: = SUM(FactSales[SalesAmount]).

  6. Alle filters worden gescheiden door een komma (,).

  7. De kolom waarnaar wordt verwezen en een bepaalde waarde, DimChannel[ChannelName] ="Store" als filter.

Deze formule zorgt ervoor dat uitsluitend verkoopwaarden gedefinieerd door de maateenheid verkoop, als filter, alleen worden berekend voor rijen in de kolom DimChannel [ChannelName] met de waarde "Store" als filter.

U kunt zich voorstellen dat het kunnen definiëren van filtercontext in een formule enorme en krachtige mogelijkheden biedt. Het kunnen verwijzen naar een bepaalde waarde in een gerelateerde tabel is slechts één voorbeeld hiervan. Het is niet erg als u het werken met context niet direct volledig begrijpt. Naarmate u vaker uw eigen formules maakt, zult u beter gaan begrijpen hoe context werkt en waarom het in DAX zo belangrijk is.

QuickQuiz over context

  1. Wat zijn de twee typen context?

  2. Wat is filtercontext?

  3. Wat is rijcontext?

De antwoorden worden gegeven aan het eind van dit onderwerp.

Overzicht

Nu dat u een eenvoudige begrip van de belangrijkste concepten in DAX hebt, kunt u beginnen DAX-formules voor berekende kolommen en metingen maken voor uw eigen. DAX kan daadwerkelijk lastig zijn om iets voor meer informatie over, maar er zijn vele informatiebronnen beschikbaar zijn voor u. Als u na lezen door dit onderwerp malen en experimenteren met een paar van uw eigen formules, vindt u meer informatie over andere concepten DAX en formules waarmee u kunt uw eigen problemen oplossen. Zijn er veel DAX-resources beschikbaar zijn voor u in Power Pivot Help, SQL Server Books Online technische documenten en blogs van Microsoft en toonaangevende BI-professionals. De Wiki voor DAX Resource Center (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) is een prima plek om te beginnen. De Data Analysis Expressions (DAX) verwijzing is ook een uitstekende resource. Zorg ervoor dat u wilt opslaan in uw Favorieten.

Het technische document DAX in the BI Tabular Model, beschikbaar als download (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409), biedt een meer gedetailleerde beschrijving van de concepten die we hier hebben besproken en van veel andere geavanceerde concepten en formules. In dit document wordt ook dezelfde werkmap Contoso DAX Sample Formulas.xlsx gebruikt waarmee u al hebt gewerkt.

QuickQuiz-antwoorden

Syntaxis:

  1. Opent de functie Functie invoegen.

  2. Vierkante haken [].

  3. =[UnitPrice] - [UnitCost]

Functies:

  1. Een tabel en een kolom.

  2. Ja. Een formule kan maximaal 64 geneste functies bevatten.

  3. Tekstfuncties.

Context:

  1. Rijcontext en filtercontext.

  2. Een of meer filters in een berekening waarin één waarde wordt bepaalt.

  3. De huidige rij.

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.

×