PBi_2_Impliciet versus expliciet

We gaan de impliciete metingSalesAmount‘ in de tabel ‘Sales’ vervangen door een expliciete meting.

NIEUWE METING

  1. Ga naar het tabblad ‘Model maken‘ > groep ‘Berekeningen > ‘Nieuwe meting‘. te klikken.

Er verschijnt een nieuw menu-item bovenaan: ‘Meethulpmiddelen‘ 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‘.
Sales = 
SUM(Sales[SalesAmount])

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…

Oorspronkelijk, bij het intrekken van alle data: 1.989 KB
We zitten hier momenteel aan 2.014 KB.

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

NIEUWE KOLOM

Toen we daarnet een nieuwe meting hebben toegevoegd, zullen jullie in de groep ‘Berekeningen’ misschien ook de optie ‘Nieuwe kolom‘ gezien hebben.

Deze functie moet spaarzaam worden gebruikt, wat later in deze module zal duidelijk worden waarom.

Klik deze keer met de rechtermuisknop op de Entiteit ‘Sales‘ onder jouw velden en kies ‘Nieuwe kolom‘ uit het contextuele menu.

We switchen nu even terug naar ons data-venster. Als laatste 2 kolommen zien we hier SalesAmount en TaxAmt.

Als we een nieuwe, berekende kolom willen toevoegen, kunnen we ook hier klikken op Nieuwe Kolom 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]

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 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])

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

En hier herkennen we al één van de expliciete metingen die we eerder aanmaakten, nl.
Sales = SUM(Sales[SalesAmount]). We kunnen hier dus deze gebruiken. De uitdrukking wordt dan:
Total Sales = Sales[Sales] + SUM(Sales[TaxAmt])

Total Sales = 
Sales[Sales] + 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.

Vanaf nu, als ik over measures, metingen spreek, zal ik altijd expliciete metingen bedoelen.