DAX-formules

DATA ANALYSIS EXPRESSIONS

  • Wordt gebruikt om analyses te maken en om formules en berekeningen aan je Power BI-rapporten toe te voegen.
  • Verschil met Excel:
    • In Excel werk je met MDX en verwijs je naar cellen wanneer je formules creëert.
    • In PowerBI, met DAX, werk je met rijen en kolommen, maw met tabellen

Als we even focussen op de tabel Year/Month/SalesAmount in onze rapport-pagina, dan merken we dat hier achterliggend al DAX-formules zijn toegepast.

Als je op het pijltje naast ‘SalesAmount‘ klikt in het Values-veld klikt zie je dat ‘Sum‘ geselecteerd is. Verander je hier de selectie naar ‘Average‘, dan zie je de cijfergegevens veranderen. Dit is een achterliggende meting, gedaan door PowerBi.
We noemen dit ‘impliciete metingen’.

Mijn raad naar jullie is om nooit impliciete metingen te gebruiken, maar deze steeds te vervangen door expliciete metingen.

We gaan voor deze tabel de impliciete meting vervangen door een expliciete meting, door in de ‘Modeling‘-tab op ‘New measure‘ te klikken. Er verschijnt een nieuw menu-item bovenaan: ‘Measure tools‘ en de formulebalk gaat open.

  1. Vervang ‘Measure‘ door Sales. Dit is de naam die we aan het resultaat van de berekening gaan geven. Voeg SUM toe achter het gelijkheidsteken. Er verschijnen een aantal voorstellen van PowerBI. Als je dan amount ingeeft blijven er nog maar 2 mogelijkheden over. Je kiest hier natuurlijk SalesAmount, kijkt nog of alle geopende haakjes ook gesloten werden en drukt ‘Enter‘.

Je ziet dan ook dat de ‘Sales‘, voorafgegaan door een pictogram van een rekenmachine, toegevoegd is aan de Sales-tabel.

Sleep je die bij de value-velden, dan zie je dat het resultaat hetzelfde is als dat van de SalesAmount, op formateren na. Het dollarteken en het aantal cijfers na de komma kan je zonder probleem aanpassen.

Maar waarom doen we dit nu? Wel daar zijn een paar redenen voor:

  1. Controle
  2. Herbruikbaarheid
  3. Impact op verbonden rapporten.

We gaan op dit punt opnieuw ons werk opslaan en even kijken naar de grootte van onze file…

We zitten hier momenteel aan 2.014 KB.

We gaan straks de file-size opnieuw bekijken en iets fundamenteels opmerken omtrent PowerBI.

Toen we daarnet een nieuwe meting hebben toegevoegd, zullen jullie misschien ook de optie ‘New Column‘ gezien hebben.

We zitten nog steeds in onze Sales-tabel en switchen even terug naar ons data-venster. Als laatste 2 kolommen zien we hier SalesAmount en TaxAmt.

Als we hier een nieuwe, bererkende kolom willen toevoegen, klikken we op New Column en het formule-invulveld verschijnt opnieuw, dit keer met Column i.p.v. Measure reeds ingevuld.

We willen dat onze kolom een naam heeft en noemen hem ‘Total Sales Amount‘. Ook hier is het invullen van wat we willen vrij simpel…:

Total Sales Amount = Sales[SalesAmount] + Sales[TaxAmt]

Als we enter doen komen de berekende waarden in de kolom te staan. Ik heb snel de kolommen TaxAmt en Total Sales Amount geformateerd en dit ziet er dan als volgt uit:

Sla nu de file opnieuw op en bekijk opnieuw de bestands-grootte…

Je ziet dat de grootte nauwelijks hoger is…

Hadden we deze ‘nieuwe kolom’ nu niet als een ‘meting’ kunnen uitvoeren? Laten we dit proberen…
Ik kopieer de volledige formule en selecteer dit maal nieuwe meting.

Ik pas wel de naam aan om verwarring te voorkomen en benoem deze meting gewoon ‘Total Sales‘.

Je ziet onmiddellijk al tekenen dat er iets niet OK is door de rode onderlijning en de boodschap die op het scherm komt…

A single value for column ‘SalesAmount’ in table ‘Sales’ cannot be determined. This …
omdat we naar kolommen verwijzen met verschillende waarden.

De formule was OK. Waarom werkt dit hier dan niet?
Wel hier komen we dan bij een van de fundamentele verschillen tussen ‘Metingen‘ en ‘berekende kolommen‘: het idee van de rijcontext.

Bij berekende kolommen gaat PowerBi door elke rij om de overeenkomstige waarde één voor één te berekenen, terwijl bij een meeting er geen rij-context is.

We kunnen onze berekening wel ‘wrappen’ in een SUM, dan werkt dit wel, en als we dan gaan kijken naar onze filesize ga je zien dat het verschil met daarnet nog kleiner is omdat de verschillende waarden niet opgeslagen hoeven te worden voor elke rij.

Total Sales = SUM(Sales[SalesAmount]) + SUM(Sales[TaxAmt])

Deze Total Sales wordt niet weergegeven en enkel gebruikt als voor de waarden die hij nodig heeft. Onze filesize is nu vermeerderd met 1Kb, omdat hier enkel de formule opgeslagen moet worden.

Als we nu terug naar onze Visualisatie gaan en SalesAmount en Sales wegklikken en vervangen door, enerzijds de data uit Total Sales Amount en Total Sales, zien we ook hier dezelfde cijfergegevens verschijnen… maar onze file is nauwelijks zwaarder geworden.

Lesson Content
0% Complete 0/1 Steps