QuickStart: informatie over de grondbeginselen van DAX in 30 minuten

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 richten u specifiek op inzicht in DAX-formules die worden gebruikt in berekeningen. U moet al vertrouwd zijn met de basisbegrippen van berekende kolommen en metingen (ook wel berekende velden genoemd), beide worden beschreven in Power Pivot Help. U moet ook bekend zijn met het Power Pivot in de ontwerpomgeving en de functies van Excel.

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 de waarden in de kolom [TotaleKosten] van de waarden in de kolom [TotaleKosten] van de waarden in de kolom [TotaleKosten] van de waarden in de kolom [TotaleKosten] van waarden in de kolom [totalewaarde] van waarden.

Laten we eens kijken naar een ander type formule, dat wordt gebruikt in een meting:

Formule voor berekende kolom

De syntaxis van deze formule bevat de volgende elementen:

  1. De naam van de meting van het verkoopbedrag. Formules voor maateenheden kunnen de naam van de meting bevatten, gevolgd door een dubbele punt, gevolgd door de berekeningsformule.

  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 meting met de naam Sum of Sales amount berekent u (=) de som van de waarden in de kolom [SalesAmount] in de tabel FactSales .

Wanneer u in een lijst met draaitabelvelden van het neerzetgebied voorwaarden in het neerzetgebied waarden plaatst, worden voor elke cel in de draaitabelwaarden berekend en opgehaald die zijn 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.

U ziet dat, in tegenstelling tot de berekende kolom Margin hiervoor, de kolom [SalesAmount] wordt voorafgegaan door de tabel FactSales, waartoe de kolom behoort. Een kolomnaam die wordt voorafgegaan door de tabelnaam wordt een volledig gekwalificeerde kolomnaam genoemd. Voor kolommen waarnaar in dezelfde tabel wordt verwezen, is het niet nodig om de tabelnaam in de formule op te nemen. Hierdoor zijn lange formules waarin naar veel kolommen wordt verwezen korter, en dus gemakkelijker te lezen. Het is echter wel een goede gewoonte om altijd de naam van de tabel op te nemen in de bemetings formules, ook 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 u nog niet in het Power Pivot venster bent, klikt u in Excel op het lint van Power Pivot 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 knop Fx. U ziet dat er een nieuw dialoogvenster wordt weergegeven, het dialoogvenster Functie invoegen. Het dialoogvenster Functie invoegen is de eenvoudigste manier om te beginnen met het invoeren van een DAX-formule. U voegt een functie toe aan een formule wanneer we een meting iets later maken, maar u hoeft geen functie toe te voegen aan de formule voor de berekende kolom. Sluit nu 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.

Als u een operator typt in een DAX-formule, is het gegevenstype van de argumenten die u gebruikt, wat belangrijk is. Als u bijvoorbeeld de volgende formule zou typen = 1 & 2, is de geretourneerde waarde de tekstwaarde ' 12 '. Dit komt doordat de operator ampersand (&) voor tekst samenvoeging. DAX interpreteert deze formule om te lezen: een resultaat berekenen door de waarde 1 als tekst te nemen en waarde 2 toe te voegen als tekst. Als u nu = 1 + 2 zou typen, leest DAX deze formule als volgt bij: Bereken een resultaat door de numerieke waarde 1 te maken en de numerieke waarde 2 toe te voegen. Het resultaat is de cursus 3, een numerieke waarde. DAX berekent resulterende waarden, afhankelijk van de operator in de formule, en niet op basis van het gegevenstype van de kolommen die in het argument worden gebruikt. Gegevenstypen in DAX zijn zeer belangrijk, maar buiten het bereik van deze handleiding aan de slag. Zie de DAX-naslag (http://go.microsoft.com/fwlink/?LinkId=239769&clcid = 0x409) in boeken online voor meer informatie over gegevenstypen en operatoren in DAX-formules.

We gaan nu een andere formule maken. Dit tijdstip maakt u door de formule te typen en via IntelliSense te gaan. Het is niet erg als u de formule niet goed begrijpt. Het gaat er hier om dat u leert hoe u een formule kunt maken waarin verschillende elementen samen in de correcte syntaxis worden gebruikt.

Taak: een meet formule maken

  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 paar letters van de tabel FactSales en dubbelklik vervolgens in de vervolgkeuzelijst van de vervolgkeuzelijst FactSales[verkoop].

  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.

Het is u gelukt. U hebt zojuist een meetwaarde gemaakt met behulp van DAX, en geen eenvoudige waarde. Wat deze formule doet, is afhankelijk van de filters in een draaitabel of draaigrafiek, de totale verkoop van het vorige kwartaal.

U hebt nu leren werken met diverse belangrijkste aspecten van DAX-formules. U hebt een formule gemaakt met twee functies. Let op: de functie PREVIOUSQUARTER is genest als een argument dat wordt doorgegeven aan 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 vraagt zich wellicht af wat de eenvoudigste DAX-formule is die u kunt maken. Welnu, dat is "de formule die u niet zelf hoeft te maken". Dat is precies wat u kunt doen met een standaard aggregatiefunctie in een meting. In vrijwel elk gegevensmodel worden filters en berekeningen toegepast op geaggregeerde gegevens. Met de functie som in de maateenheid totale verkoop marge die u eerder hebt gezien, wordt bijvoorbeeld de som van alle getallen in een bepaalde kolom opgeteld. DAX bevat tevens diverse andere functies waarmee waarden kunnen worden geaggregeerd. Met de functie AutoSum kunt u aan de hand van standaardaggregaties automatisch formules maken.

Taak voor extra punten: een meet formule maken met de functie AutoSom

  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 lint op het tabblad Start in de groep berekeningen op de knop AutoSom .

AutoSom in PowerPivot

Klik op de pijl-omlaag naast AutoSomen klik vervolgens op gemiddelde (Let op de andere standaard aggregatiefuncties die u kunt gebruiken).

Een nieuwe meting wordt onmiddellijk gemaakt met de naam gemiddelde van 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 is de functie van deze knop op de formulebalk?
    Functieknop

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

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

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 categorieën met functies: datum en tijd, informatie, logische, wiskundige, statistische, tekst en time Intelligence functies. Als u wel bekend bent met functies in Excel-formules, worden veel van de functies in DAX weergegeven zoals u dat wilt. DAX-functies zijn echter uniek op de volgende manieren:

  • 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.

Soms is het moeilijk te weten welke functies u mogelijk in een formule moet gebruiken. Power Pivot en de tabellaire model ontwerper in SQL Server Data tools, moet u de functie functie invoegen, een dialoogvenster selecteren waarmee u functies kunt selecteren op categorie en korte beschrijvingen kunt maken van 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 in de tabel FactSales naar de meest rechtse kolom en klik in de kolomkop op kolom toevoegen.

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

  3. Klik op de knop functie invoegen . Functie invoegen Hiermee wordt het dialoogvenster functie invoegen geopend.

  4. Selecteer in het dialoogvenster functie invoegen de optie Selecteer een categorie keuze. Standaard is Alles geselecteerd en alle functies in de categorie all worden hieronder weergegeven. Dat is een groot aantal functies, dus u zult de functies willen filteren om het type functie dat u zoekt eenvoudiger te kunnen vinden.

  5. Voor deze formule wilt u bepaalde gegevens retourneren die al in een andere tabel voorkomt. Hiervoor gaat u een functie gebruiken in de categorie filteren. Klik op de categorie filteren en klik vervolgens in de groep Selecteer een functieop de gerelateerde functie en dubbelklik erop. 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 een andere zeer belangrijke functie in DAX geïntroduceerd, de bijbehorende functie. 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 locaties voor informatie over alle DAX-functies vindt u in de naslaginformatie 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 is niet alleen van toepassing op berekende kolommen. De rijcontext is ook van toepassing wanneer een formule een functie heeft die filters toepast om één rij in een tabel te identificeren. De functie past inherent een rijcontext toe voor elke rij van de tabel die door de functie wordt gefilterd. Dit type rij-context meestal van toepassing op maateenheden.

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 de filtercontext zo belangrijk in DAX? Omdat FilterContext meestal eenvoudig kan worden toegepast door kolom-en rijlabels en Slicers toe te voegen in een draaitabel, kunt u FilterContext ook in een DAX-formule toepassen door een filter te definiëren op basis van functies zoals alles, gerelateerd, filteren, berekenen, op relaties en op andere maateenheden en kolommen. Laten we bijvoorbeeld eens kijken naar de volgende formule in een meting met de naam van Store Sales:

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 meting van Store Sales, 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 meting [verkoop] in dezelfde tabel als een expressie. De maateenheid heeft de volgende formule: = som (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 alleen de verkoopwaarden, die zijn gedefinieerd door de verkoopmaateenheid, worden berekend voor rijen in de kolom DimChannel [kanaalnaam] 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 u een belangrijke informatie hebt over de belangrijkste concepten in DAX, kunt u meteen DAX-formules maken voor berekende kolommen en metingen. DAX is een beetje moeilijk te leren, maar er zijn veel bronnen beschikbaar voor u. Lees na dit onderwerp een paar keer dit onderwerp en Experimenteer met een paar van uw eigen formules voor meer informatie over andere DAX-concepten en-formules die u kunnen helpen uw eigen zakelijke problemen op te lossen. Er zijn veel DAX-bronnen beschikbaar in Power Pivot Help, SQL Server-online, White papers en blogs van Microsoft en toonaangevende BI-professionals. De wiki voor DAX-resources (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) is een prima plek om te beginnen. De naslag voor Data Analysis Expressions (Dax) is ook een prima bron. Zorg dat u het op de Favorieten opslaat.

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.

Meer hulp nodig?

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-ondersteuningsagenten.

×