Standaard DAX-bewerkingen toepassen in Power BI DesktopApply DAX basics in Power BI Desktop

Dit artikel is bedoeld voor nieuwe gebruikers van Power BI Desktop.This article is for users new to Power BI Desktop. In deze korte en eenvoudige inleiding wordt beschreven hoe u met Data Analysis Expressions (DAX) een aantal problemen met basisberekeningen en gegevensanalyse kunt oplossen.It gives you a quick and easy introduction on how you can use Data Analysis Expressions (DAX) to solve a number of basic calculation and data analysis problems. We bekijken conceptuele informatie en een reeks taken die u kunt uitvoeren, en doen een kennistoets om te testen wat u hebt geleerd.We’ll go over some conceptual information, a series of tasks you can complete, and a knowledge check to test what you’ve learned. Nadat u dit artikel hebt gelezen, zou u een goed begrip van de belangrijkste basisconcepten in DAX moeten hebben.After completing this article, you should have a good understanding of the most important fundamental concepts in DAX.

Wat is DAX?What is DAX?

DAX is een verzameling functies, operators en constanten die in een formule, of expressie, kunnen worden gebruikt om een of meer waarden te berekenen en te retourneren.DAX is a collection of functions, operators, and constants that can be used in a formula, or expression, to calculate and return one or more values. Eenvoudig gezegd, DAX helpt u nieuwe informatie samen te stellen op basis van gegevens die al in het model staan.Stated more simply, DAX helps you create new information from data already in your model.

Waarom is DAX zo belangrijk?Why is DAX so important?

Het is eenvoudig om een nieuw Power BI Desktop-bestand te maken en daar gegevens in te importeren.It’s easy to create a new Power BI Desktop file and import some data into it. U kunt zelfs rapporten maken die waardevolle inzichten bieden zonder enig gebruik te maken van DAX-formules.You can even create reports that show valuable insights without using any DAX formulas at all. Maar wat als u groeipercentages voor verschillende productcategorieën en verschillende datumbereiken moet analyseren?But, what if you need to analyze growth percentage across product categories and for different date ranges? Of als u de jaarlijkse groei ten opzichte van markttrends moet berekenen?Or, you need to calculate year-over-year growth compared to market trends? DAX-formules maken dit mogelijk en bieden bovendien tal van andere belangrijke mogelijkheden.DAX formulas provide this capability and many other important capabilities as well. Door te leren hoe u effectieve DAX-formules kunt maken, kunt u optimaal gebruikmaken van uw gegevens.Learning how to create effective DAX formulas will help you get the most out of your data. Wanneer u over alle benodigde informatie beschikt, kunt u beginnen met het oplossen van bedrijfsproblemen die invloed hebben op de winstgevendheid van uw bedrijf.When you get the information you need, you can begin to solve real business problems that affect your bottom line. Dit is de kracht van Power BI en DAX helpt u daarbij.This is the power of Power BI, and DAX will help you get there.

VereistenPrerequisites

U bent mogelijk al bekend met het samenstellen van formules in Microsoft Excel.You might already be familiar with creating formulas in Microsoft Excel. Deze kennis komt van pas om DAX beter te begrijpen, maar zelfs als u geen ervaring hebt met Excel-formules, kunt u met de hier beschreven concepten DAX-formules gaan maken en meteen praktische BI-problemen gaan oplossen.That knowledge will be helpful in understanding DAX, but even if you have no experience with Excel formulas, the concepts described here will help you get started creating DAX formulas and solving real-world BI problems right away.

We gaan kijken hoe DAX-formules worden gebruikt in berekeningen, en met name in metingen en berekende kolommen.We’ll focus on understanding DAX formulas used in calculations, more specifically, in measures and calculated columns. U dient wel bekend te zijn met Power BI Desktop en te weten hoe u gegevens importeert en velden aan een rapport toevoegt. Daarnaast moet u vertrouwd zijn met de grondbeginselen van metingen en berekende kolommen.You should already be familiar with using Power BI Desktop to import data and add fields to a report, and you should also be familiar with fundamental concepts of Measures and Calculated columns.

VoorbeeldwerkmapExample workbook

De beste manier om bekend te raken met DAX, is door enkele eenvoudige formules te maken, deze te gebruiken met feitelijke gegevens en zelf de resultaten daarvan te bekijken.The best way to learn DAX is to create some basic formulas, use them with actual data, and see the results for yourself. In de hier gegeven voorbeelden en taken wordt gebruikgemaakt van het bestand Contoso Sales Sample for Power BI Desktop.The examples and tasks here use the Contoso Sales Sample for Power BI Desktop file. Dit voorbeeldbestand is hetzelfde als het bestand dat wordt gebruikt in het artikel Zelfstudie: Uw eigen metingen maken in Power BI Desktop.This sample file is the same one used in the Tutorial: Create your own measures in Power BI Desktop article.

Laten we beginnen.Let's begin!

We gaan ons een beeld vormen van DAX aan de hand van drie fundamentele concepten: syntaxis, functies en context.We'll frame our understanding of DAX around three fundamental concepts: Syntax, Functions, and Context. Er zijn andere belangrijke concepten in DAX, maar deze drie bieden de beste basis om uw vaardigheden in DAX verder uit te bouwen.There are other important concepts in DAX, but understanding these three concepts will provide the best foundation on which to build your DAX skills.

SyntaxisSyntax

Voordat u uw eigen formules gaat maken, kijken we eerst naar de syntaxis van de DAX-formules.Before you create your own formulas, let’s take a look at DAX formula syntax. De syntaxis omvat de verschillende elementen van een formule, of eenvoudiger gezegd, hoe de formule wordt geschreven.Syntax includes the various elements that make up a formula, or more simply, how the formula is written. Bekijk bijvoorbeeld de volgende eenvoudige DAX-formule voor een meting:For example, here's a simple DAX formula for a measure:

De syntaxis van de DAX-formule

Deze formule bevat de volgende syntaxiselementen:This formula includes the following syntax elements:

A.A. De naam van de meting, Totale verkoop.The measure name, Total Sales.

B.B. Het Is gelijk-teken ( = ) dat het begin van de formule aangeeft.The equals sign operator (=), which indicates the beginning of the formula. Wanneer deze wordt berekend, wordt een resultaat geretourneerd.When calculated, it will return a result.

C.C. De DAX-functie SUM waarmee u alle getallen in de kolom Sales[SalesAmount] bij elkaar optelt.The DAX function SUM, which adds up all of the numbers in the Sales[SalesAmount] column. Later geven we meer informatie over functies.You’ll learn more about functions later.

D.D. Haakjes () die een expressie omgeven die een of meer argumenten bevat.Parenthesis (), which surround an expression that contains one or more arguments. Alle functies hebben minimaal één argument nodig.All functions require at least one argument. Een argument geeft een waarde door aan een functie.An argument passes a value to a function.

E.E. De tabel, Sales, waarnaar wordt verwezen.The referenced table, Sales.

F.F. De kolom, [SalesAmount] , waarnaar wordt verwezen in de tabel Sales.The referenced column, [SalesAmount], in the Sales table. Door dit argument weet de functie SUM voor welke kolom een som moet worden samengesteld.With this argument, the SUM function knows on which column to aggregate a SUM.

Voor een beter begrip van een DAX-formule kan het handig zijn om elk van de elementen op te splitsen in een taal waarin u dagelijks denkt en die u dagelijks spreekt.When trying to understand a DAX formula, it's often helpful to break down each of the elements into a language you think and speak every day. U kunt deze formule bijvoorbeeld lezen als:For example, you can read this formula as:

Bereken (=) voor de meting met de naam Total Sales de som van de waarden uit de kolom [SalesAmount] in de tabel Sales.For the measure named Total Sales, calculate (=) the SUM of values in the [SalesAmount ] column in the Sales table.

Wanneer deze meting wordt toegevoegd aan een rapport, worden door de meting waarden berekend en geretourneerd door verkoopbedragen op te tellen voor elk van de andere velden die we opnemen, bijvoorbeeld voor Cell Phones in the USA.When added to a report, this measure calculates and returns values by summing up sales amounts for each of the other fields we include, for example, Cell Phones in the USA.

Misschien denkt u "Doet deze meting niet hetzelfde als wanneer ik het veld SalesAmount gewoon aan mijn rapport zou toevoegen?"You might be thinking, "Isn’t this measure doing the same thing as if I were to just add the SalesAmount field to my report?" En dan hebt u gelijk.Well, yes. Maar er is een goede reden om onze eigen meting te maken die waarden uit het veld SalesAmount optelt: we kunnen deze gebruiken als argument in andere formules.But, there’s a good reason to create our own measure that sums up values from the SalesAmount field: We can use it as an argument in other formulas. Dit kan nu wat verwarrend lijken, maar naarmate u meer vaardigheid krijgt in DAX-formules, neemt de efficiëntie van uw formules en uw model alleen maar toe.This may seem a little confusing now, but as your DAX formula skills grow, knowing this measure will make your formulas and your model more efficient. De meting voor Total Sales wordt overigens weergegeven als een argument in andere formules verderop in dit artikel.In fact, you’ll see the Total Sales measure showing up as an argument in other formulas later on.

Laten we wat andere aspecten van deze formule bekijken.Let’s go over a few more things about this formula. Meer in het bijzonder hebben we een functie geïntroduceerd, SUM.In particular, we introduced a function, SUM. Functies zijn vooraf geschreven formules die het eenvoudiger maken om complexe berekeningen en bewerkingen uit te voeren met getallen, datums, tijd, tekst en meer.Functions are pre-written formulas that make it easier to do complex calculations and manipulations with numbers, dates, time, text, and more. We zullen functies later nader bespreken.You'll learn more about functions later.

U ziet ook dat de kolomnaam [SalesAmount] wordt voorafgegaan door de tabel Sales waartoe de kolom behoort.You also see that the column name [SalesAmount] was preceded by the Sales table in which the column belongs. Deze naam wordt de volledig gekwalificeerde kolomnaam genoemd, omdat deze de naam van de kolom bevat, voorafgegaan door de naam van de tabel.This name is known as a fully qualified column name in that it includes the column name preceded by the table name. Voor kolommen waarnaar in dezelfde tabel wordt verwezen, hoeft de tabelnaam niet te worden opgenomen in de formule. Op die manier wordt de lengte beperkt van formules waarin naar veel kolommen wordt verwezen en zijn deze gemakkelijker te lezen.Columns referenced in the same table don't require the table name be included in the formula, which can make long formulas that reference many columns shorter and easier to read. Het is echter raadzaam de tabelnaam in uw metingformules op te nemen, zelfs als de kolommen tot dezelfde tabel behoren.However, it's a good practice to include the table name in your measure formulas, even when in the same table.

Notitie

Als een tabelnaam spaties, gereserveerde trefwoorden of niet-toegestane tekens bevat, moet u de tabelnaam tussen enkele aanhalingstekens plaatsen.If a table name contains spaces, reserved keywords, or disallowed characters, you must enclose the table name in single quotation marks. U moet ook tabelnamen tussen aanhalingstekens plaatsen als de naam tekens bevat die buiten de alfanumerieke ANSI-tekenset vallen, ongeacht of uw landinstelling de tekenset wel of niet ondersteunt.You’ll also need to enclose table names in quotation marks if the name contains any characters outside the ANSI alphanumeric character range, regardless of whether your locale supports the character set or not.

Het is belangrijk dat uw formules de juiste syntaxis hebben.It’s important your formulas have the correct syntax. In de meeste gevallen geldt dat, als de syntaxis niet juist is, er een syntaxisfout wordt geretourneerd.In most cases, if the syntax isn't correct, a syntax error is returned. In andere gevallen kan de syntaxis juist zijn, maar zijn de geretourneerde waarden misschien niet wat u verwacht.In other cases, the syntax may be correct, but the values returned might not be what you're expecting. De DAX-editor in Power BI Desktop biedt een suggestiefunctie. Dit is een functie waarmee u syntactisch juiste formules kunt maken door u te helpen de juiste elementen te selecteren.The DAX editor in Power BI Desktop includes a suggestions feature, used to create syntactically correct formulas by helping you select the correct elements.

We gaan een eenvoudige formule maken.Let’s create a simple formula. Deze taak biedt u meer inzicht in de syntaxis van formules en laat zien hoe de suggestiefunctie in de formulebalk u kan helpen.This task will help you further understand formula syntax and how the suggestions feature in the formula bar can help you.

Taak: Maak een metingformuleTask: Create a measure formula

  1. Download en open het bestand Contoso Sales Sample Power BI Desktop.Download and open the Contoso Sales Sample Power BI Desktop file.

  2. Klik in de rapportweergave in de lijst met velden met de rechtermuisknop op de tabel Sales en selecteer vervolgens Nieuwe meting.In Report view, in the field list, right-click the Sales table, and then select New Measure.

  3. Vervang in de formulebalk Meting door een nieuwe metingnaam Verkoop vorig kwartaal.In the formula bar, replace Measure by entering a new measure name, Previous Quarter Sales.

  4. Na het gelijkteken typt u de eerste letters CAL en dubbelklikt u vervolgens op de functie die u wilt gebruiken.After the equals sign, type the first few letters CAL, and then double-click the function you want to use. In deze formule wilt u de functie CALCULATE gebruiken.In this formula, you want to use the CALCULATE function.

    U gebruikt de functie CALCULATE om de bedragen te filteren die we willen laten optellen door een argument dat we doorgeven aan de functie CALCULATE.You’ll use the CALCULATE function to filter the amounts we want to sum by an argument we pass to the CALCULATE function. Dit wordt ook wel het nesten van functies genoemd.This is referred to as nesting functions. De functie CALCULATE heeft minimaal twee argumenten.The CALCULATE function has at least two arguments. De eerste is de te evalueren expressie en de tweede is een filter.The first is the expression to be evaluated, and the second is a filter.

  5. Na het haakje ( voor de functie CALCULATE, typt u SUM, gevolgd door een nog een haakje openen ( .After the opening parenthesis ( for the CALCULATE function, type SUM followed by another opening parenthesis (.

    Vervolgens geven we een argument door aan de functie SUM.Next, we'll pass an argument to the SUM function.

  6. Begin met het typen van Sal en selecteer vervolgens Sales [SalesAmount] , gevolgd door een haakje sluiten ) .Begin typing Sal, and then select Sales[SalesAmount], followed by a closing parenthesis ).

    Dit is het eerste argument van de expressie voor de functie CALCULATE.This is the first expression argument for our CALCULATE function.

  7. Typ een komma ( , ) gevolgd door een spatie om het eerste filter op te geven en typ daarna PREVIOUSQUARTER.Type a comma (,) followed by a space to specify the first filter, and then type PREVIOUSQUARTER.

    U gebruikt de functie PREVIOUSQUARTER voor tijdintelligentie om de SUM-resultaten te filteren op het vorige kwartaal.You’ll use the PREVIOUSQUARTER time intelligence function to filter SUM results by the previous quarter.

  8. Na de haakjes openen () voor de functie PREVIOUSQUARTER typt u Calendar[DateKey] .After the opening parenthesis ( for the PREVIOUSQUARTER function, type Calendar[DateKey].

    De functie PREVIOUSQUARTER heeft één argument, te weten een kolom met een aaneengesloten reeks datums.The PREVIOUSQUARTER function has one argument, a column containing a contiguous range of dates. In ons geval is dat de kolom DateKey in de tabel Calendar.In our case, that's the DateKey column in the Calendar table.

  9. Sluit de beide argumenten die worden doorgegeven aan de functies PREVIOUSQUARTER en CALCULATE af door twee haakjes sluiten )) te typen.Close both the arguments being passed to the PREVIOUSQUARTER function and the CALCULATE function by typing two closing parenthesis )).

    De formule moet er nu zo uitzien:Your formula should now look like this:

    Previous Quarter Sales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey])) =Previous Quarter Sales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))

  10. Schakel het selectievakjeSelect the checkmark Pictogram met vinkje in de formulebalk in of druk op Enter om de formule te valideren en aan het model toe te voegen.in the formula bar or press Enter to validate the formula and add it to the model.

Prima!You did it! U hebt zojuist een ingewikkelde meting met DAX gemaakt en deze was zeker niet de eenvoudigste.You just created a complex measure by using DAX, and not an easy one at that. Wat deze formule doet, is de totale verkoop van het vorige kwartaal berekenen, afhankelijk van de filters die in een rapport zijn toegepast.What this formula will do is calculate the total sales for the previous quarter, depending on the filters applied in a report. Als we bijvoorbeeld SalesAmount en de nieuwe meting voor Verkoop vorig kwartaal in een diagram plaatsen en vervolgens Year en QuarterOfYear als slicers toevoegen, is dit het resultaat:For example, if we put SalesAmount and our new Previous Quarter Sales measure in a chart, and then add Year and QuarterOfYear as Slicers, we’d get something like this:

Diagram met Verkoop vorig kwartaal en SalesAmount

U hebt nu kennisgemaakt met verschillende belangrijke aspecten van DAX-formules:You were just introduced to several important aspects of DAX formulas:

  • Deze formule bevat twee functies.This formula included two functions. PREVIOUSQUARTER, een functie voor tijdintelligentie, is genest als een argument dat wordt doorgegeven aan CALCULATE, een filterfunctie.PREVIOUSQUARTER, a time intelligence function, is nested as an argument passed to CALCULATE, a filter function.

    DAX-formules kunnen maximaal 64 geneste functies bevatten.DAX formulas can contain up to 64 nested functions. Maar het is niet erg waarschijnlijk dat een formule zo veel geneste functies zal bevatten.It’s unlikely a formula would ever contain so many nested functions. Een dergelijke formule zou in feite lastig te maken zijn en de fouten hiervoor moeilijk op te sporen. Daarnaast is zo'n formule waarschijnlijk ook niet erg snel.In fact, such a formula would be difficult to create and debug, and it probably wouldn’t be very fast either.

  • In deze formule hebt u ook filters gebruikt.In this formula, you also used filters. Filters bakenen af wat er wordt berekend.Filters narrow down what will be calculated. In dit geval hebt u één filter als argument geselecteerd, wat in feite het resultaat van een andere functie is.In this case, you selected one filter as an argument, which is actually the result of another function. Later geven we meer informatie over filters.You will learn more about filters later.

  • U hebt de functie CALCULATE gebruikt.You used the CALCULATE function. Deze functie is een van de krachtigste functies in DAX.This function is one of the most powerful functions in DAX. Bij het ontwerpen van modellen en het samenstellen van complexere formules zult u deze functie waarschijnlijk vaak gebruiken.As you author models and create more complex formulas, you'll likely use this function many times. Hoewel verdere bespreking van de functie CALCULATE buiten het bereik van dit artikel valt, moet u aan deze functie extra aandacht besteden wanneer u beter bekend raakt met DAX.Although further discussion about the CALCULATE function is outside the scope of this article, as your knowledge of DAX grows, pay special attention to it.

QuickQuiz over syntaxisSyntax QuickQuiz

  1. Waarvoor wordt deze knop op de formulebalk gebruikt?What does this button on the formula bar do?

    Selectie van knop

  2. Waardoor wordt een kolomnaam in een DAX-formule altijd omgeven?What always surrounds a column name in a DAX formula?

Aan het einde van dit artikel vindt u de antwoorden.Answers are provided at the end of this article.

FunctiesFunctions

Functies zijn vooraf gedefinieerde formules waarmee berekeningen in een bepaalde volgorde of met een bepaalde structuur worden uitgevoerd met behulp van specifieke waarden, argumenten genaamd.Functions are predefined formulas that perform calculations by using specific values, called arguments, in a particular order or structure. Argumenten kunnen bestaan uit andere functies, een andere formule, een expressie, kolomverwijzingen, getallen, tekst, logische waarden zoals TRUE of FALSE, of constanten.Arguments can be other functions, another formula, expression, column references, numbers, text, logical values such as TRUE or FALSE, or constants.

DAX omvat de volgende functiecategorieën: Datum en tijd, Tijdintelligentie, Informatie, Logisch, Wiskundig, Statistisch, Tekst, Bovenliggend/onderliggend en Overige functies.DAX includes the following categories of functions: Date and Time, Time Intelligence, Information, Logical, Mathematical, Statistical, Text, Parent/Child, and Other functions. Als u vertrouwd bent met functies in Excel-formules, zullen veel van de functies in DAX u bekend voorkomen. DAX-functies zijn echter uniek vanwege het volgende:If you’re familiar with functions in Excel formulas, many of the functions in DAX will appear similar to you; however, DAX functions are unique in the following ways:

  • Een DAX-functie heeft altijd betrekking op een volledige kolom of tabel.A DAX function always references a complete column or a table. Als u alleen bepaalde waarden uit een tabel of kolom wilt gebruiken, kunt u filters toevoegen aan de formule.If you want to use only particular values from a table or column, you can add filters to the formula.

  • Als u berekeningen moet aanpassen op rijbasis, biedt DAX functies waarmee u de huidige rijwaarde of een gerelateerde waarde als een soort argument kunt gebruiken, voor het uitvoeren van berekeningen die per context verschillen.If you need to customize calculations on a row-by-row basis, DAX provides functions that let you use the current row value or a related value as a kind of argument, to perform calculations that vary by context. Later wordt de context nader beschreven.You'll learn more about context later.

  • DAX bevat veel functies die in plaats van een waarde een tabel retourneren.DAX includes many functions that return a table rather than a value. De tabel wordt niet weergegeven, maar hiermee wordt invoer geleverd aan andere functies.The table isn't displayed, but is used to provide input to other functions. U kunt bijvoorbeeld een tabel ophalen en vervolgens de afzonderlijke waarden daarin tellen of dynamische totalen in gefilterde tabellen of kolommen berekenen.For example, you can retrieve a table and then count the distinct values in it, or calculate dynamic sums across filtered tables or columns.

  • DAX omvat tal van functies voor tijdintelligentie.DAX includes a variety of time intelligence functions. Met deze functies kunt u datumbereiken definiëren of selecteren en daarop gebaseerde dynamische berekeningen uitvoeren.These functions let you define or select date ranges, and perform dynamic calculations based on them. U kunt bijvoorbeeld totalen in parallelle perioden vergelijken.For example, you can compare sums across parallel periods.

  • Excel heeft een populaire functie, VLOOKUP.Excel has a popular function, VLOOKUP. DAX-functies gebruiken geen cel of celbereik als verwijzing zoals VERT.ZOEKEN in Excel.DAX functions don’t take a cell or cell range as a reference like VLOOKUP does in Excel. DAX-functies gebruiken een kolom of tabel als verwijzing.DAX functions take a column or a table as a reference. Houd er rekening mee dat u in Power BI Desktop met een relationeel gegevensmodel werkt.Keep in mind, in Power BI Desktop you’re working with a relational data model. Het opzoeken van waarden in een andere tabel is eenvoudig en in de meeste gevallen hoeft u helemaal geen formule te maken.Looking up values in another table is easy, and in most cases you don’t need to create any formulas at all.

    Zoals u ziet, kunnen functies in DAX u helpen bij het maken van krachtige formules.As you can see, functions in DAX can help you create powerful formulas. Maar we hebben eigenlijk alleen nog maar naar de basisprincipes van functies gekeken.We really only touched on the basics of functions. Naarmate uw vaardigheden met DAX toenemen, gaat u formules maken met veel verschillende functies.As your DAX skills grow, you'll create formulas by using many different functions. Een van de beste plekken om meer te weten te komen over elk van de DAX-functies is de Naslag voor DAX-functies.One of the best places to learn details about each of the DAX functions is in the DAX Function Reference.

QuickQuiz voor functiesFunctions QuickQuiz

  1. Waarnaar verwijst een functie altijd?What does a function always reference?
  2. Kan een formule meer dan één functie bevatten?Can a formula contain more than one function?
  3. Welke functiecategorie zou u gebruiken om twee tekenreeksen samen te voegen tot één tekenreeks?What category of functions would you use to concatenate two text strings into one string?

Aan het einde van dit artikel vindt u de antwoorden.Answers are provided at the end of this article.

ContextContext

Context is een van de belangrijkste DAX-concepten.Context is one of the most important DAX concepts to understand. Er zijn twee typen context in DAX: rijcontext en filtercontext.There are two types of context in DAX: row context and filter context. We kijken eerst naar rijcontext.We’ll first look at row context.

RijcontextRow context

Rijcontext kan het beste worden beschouwd als zijnde de huidige rij.Row context is most easily thought of as the current row. Dit is van toepassing wanneer een formule een functie bevat die filters gebruikt om één specifieke rij in een tabel te identificeren.It applies whenever a formula has a function that applies filters to identify a single row in a table. De functie past een rijcontext toe voor elke rij in de tabel die wordt gefilterd.The function will inherently apply a row context for each row of the table over which it is filtering. Dit type rijcontext geldt doorgaans voor metingen.This type of row context most often applies to measures.

FiltercontextFilter context

Filtercontext is wat ingewikkelder dan rijcontext.Filter context is a little more difficult to understand than row context. U kunt filtercontext zien als een of meer filters die worden toegepast in een berekening waarmee een resultaat of waarde wordt bepaald.You can most easily think of filter context as: One or more filters applied in a calculation that determines a result or value.

Filtercontext komt niet in de plaats van rijcontext, maar wordt toegepast naast rijcontext.Filter context doesn’t exist in place of row context; rather, it applies in addition to row context. U kunt de waarden die in een berekening moeten worden opgenomen bijvoorbeeld nog verder beperken door een filtercontext toe te passen die niet alleen de rijcontext aangeeft, maar ook een bepaalde waarde (filter) in die rijcontext aangeeft.For example, to further narrow down the values to include in a calculation, you can apply a filter context, which not only specifies the row context, but also specifies a particular value (filter) in that row context.

Filtercontext is gemakkelijk te zien in uw rapporten.Filter context is easily seen in your reports. Wanneer u bijvoorbeeld TotalCost in een visualisatie opneemt, gevolgd door add Year en Region, definieert u een filtercontext waarmee een subset van gegevens wordt geselecteerd op basis van een bepaald jaar en bepaalde regio.For example, when you add TotalCost to a visualization, and then add Year and Region, you are defining a filter context that selects a subset of data based on a given year and region.

Waarom is filtercontext zo belangrijk voor DAX?Why is filter context so important to DAX? Filtercontext kan het gemakkelijkst worden gebruikt door velden aan een visualisatie toe te voegen, maar kan ook worden toegepast in een DAX-formule door een filter te definiëren met behulp van functies zoals ALL, RELATED, FILTER, CALCULATE, op basis van relaties en andere metingen en kolommen.Because while filter context can most easily be applied by adding fields to a visualization, filter context can also be applied in a DAX formula by defining a filter using functions such as ALL, RELATED, FILTER, CALCULATE, by relationships, and by other measures and columns. Laten we eens naar de volgende formule kijken die wordt gebruikt in een meting met de naam Store Sales:For example, let’s look at the following formula in a measure named Store Sales:

Meting Verkoop winkel

Voor een beter begrip van de formule gaan we deze opsplitsen, net zoals we met andere formules kunnen doen.To better understand this formula, we can break it down, much like with other formulas.

Deze formule bevat de volgende syntaxiselementen:This formula includes the following syntax elements:

A.A. De naam van de meting, Verkoop winkel.The measure name, Store Sales.

B.B. Het Is gelijk-teken ( = ) dat het begin van de formule aangeeft.The equals sign operator (=), which indicates the beginning of the formula.

C.C. De functie CALCULATE waarmee een expressie, als argument, wordt bewerkt in een context die wordt gewijzigd door de opgegeven filters.The CALCULATE function, which evaluates an expression, as an argument, in a context that is modified by the specified filters.

D.D. Haakjes () die een expressie omgeven die een of meer argumenten bevat.Parenthesis (), which surround an expression containing one or more arguments.

E.E. Een meting [Total Sales] in dezelfde tabel als een expressie.A measure [Total Sales] in the same table as an expression. De meting Total Sales heeft de formule: =SUM(Sales[SalesAmount]).The Total Sales measure has the formula: =SUM(Sales[SalesAmount]).

F.F. Een komma ( , ) die het eerste expressieargument scheidt van het filterargument.A comma (,), which separates the first expression argument from the filter argument.

G.G. De volledig gekwalificeerde kolom waarnaar wordt verwezen, Channel[ChannelName] .The fully qualified referenced column, Channel[ChannelName]. Dit is onze rijcontext.This is our row context. Elke rij in deze kolom geeft een kanaal aan, zoals Winkel of Online.Each row in this column specifies a channel, such as Store or Online.

H.H. De specifieke waarde, Winkel als filter.The particular value, Store, as a filter. Dit is onze filtercontext.This is our filter context.

Deze formule zorgt ervoor dat alleen verkoopwaarden die door de Totale verkoop-meting zijn gedefinieerd alleen worden berekend voor rijen in de kolom Channel[ChannelName] waarbij de waarde Winkel wordt gebruikt als filter.This formula ensures only sales values defined by the Total Sales measure are calculated only for rows in the Channel[ChannelName] column, with the value Store used as a filter.

U kunt zich wel voorstellen dat het definiëren van filtercontext binnen een formule bijzonder krachtige mogelijkheden biedt.As you can imagine, being able to define filter context within a formula has immense and powerful capabilities. De mogelijkheid om alleen naar één bepaalde waarde in een gerelateerde tabel te verwijzen, is slechts één voorbeeld.The ability to reference only a particular value in a related table is just one such example. Maakt u zich geen zorgen als u het concept van context nog niet meteen kunt vatten.Don’t worry if you do not completely understand context right away. Wanneer u uw eigen formules gaat samenstellen, krijgt u een beter begrip van context en waarom dit in DAX zo belangrijk is.As you create your own formulas, you will better understand context and why it’s so important in DAX.

QuickQuiz over contextContext QuickQuiz

  1. Welke twee typen context zijn er?What are the two types of context?
  2. Wat is filtercontext?What is filter context?
  3. Wat is rijcontext?What is row context?

Aan het einde van dit artikel vindt u de antwoorden.Answers are provided at the end of this article.

SamenvattingSummary

Nu u de grondbeginselen van de belangrijkste concepten in DAX kent, kunt u zelf DAX-formules voor metingen gaan maken.Now that you have a basic understanding of the most important concepts in DAX, you can begin creating DAX formulas for measures on your own. DAX is misschien niet zo heel eenvoudig in de vingers te krijgen, maar er zijn veel hulpbronnen beschikbaar.DAX can indeed be a little tricky to learn, but there are many resources available to you. Na het lezen van dit artikel en met zelfgemaakte formules te hebben geëxperimenteerd, kunt u meer leren over andere DAX-concepten en -formules die u kunt toepassen op uw eigen situatie.After reading through this article and experimenting with a few of your own formulas, you can learn more about other DAX concepts and formulas that can help you solve your own business problems. U hebt de beschikking over tal van DAX-hulpbronnen. De belangrijkste daarvan is de Naslag voor Data Analysis Expressions (DAX).There are many DAX resources available to you; most important is the Data Analysis Expressions (DAX) Reference.

Omdat DAX al een aantal jaren deel uit maakt van andere Microsoft BI-programma's, zoals Power Pivot en Analysis Services-modellen in tabelvorm, is er veel nuttige informatie beschikbaar.Because DAX has been around for several years in other Microsoft BI tools such as Power Pivot and Analysis Services Tabular models, there’s a lot of great information out there. Er is nog meer informatie te vinden in handboeken, whitepapers en blogs van zowel Microsoft als toonaangevende BI-deskundigen.You can find more information in books, whitepapers, and blogs from both Microsoft and leading BI professionals. Ook de Wiki over DAX Resource Center op TechNet (Engelstalig) is een prima plek om te beginnen.The DAX Resource Center Wiki on TechNet is also a great place to start.

QuickQuiz: de antwoordenQuickQuiz answers

Syntaxis:Syntax:

  1. Valideert de meting en voert deze in het model in.Validates and enters the measure into the model.
  2. Vierkante haken [].Brackets [].

Functies:Functions:

  1. Een tabel en een kolom.A table and a column.
  2. Ja.Yes. Een formule kan maximaal 64 geneste functies bevatten.A formula can contain up to 64 nested functions.
  3. Tekstfuncties.Text functions.

Context:Context:

  1. Rijcontext en filtercontext.Row context and filter context.
  2. Een of meer filters in een berekening om één specifieke waarde te bepalen.One or more filters in a calculation that determines a single value.
  3. De huidige rij.The current row.