PBi_2_Impliciet versus expliciet (VT+z)

We gaan de impliciete metingSom van SalesAmount‘ in de tabel ‘Sales’ vervangen door een expliciete meting.

NIEUWE METING (VT+Z)

  1. Selecteer de tabel waar je een meting wil in maken. In ons geval willen we die in de “Sales” tabel. Hierna gaat bovenaan in het lint het tabblad ‘Tabelhulpmiddellen’ open en selecteer hier ‘Nieuwe meting’.

Er verschijnt een nieuw menu-item bovenaan: ‘Meethulpmiddelen‘ en de formulebalk gaat open.

  1. Vervang ‘Meting‘ door SalesAmountM. (M staat voor meting)
    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‘.
SalesAmountM = 
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.

Opdracht

Jullie mogen nu even proberen zelf deze meting ‘SalesAmountM’ aan te maken met de Dax formule SUM.

Sla je file nu op en kijk even naar de bestandsgrootte en onthou de grootte.

NIEUWE KOLOM (VT)

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 Kolom i.p.v. Meting 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…

Wat is het verschil tussen een berekende kolom (calculated column) en een meting (measurement)?
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.

Als we de calculated column eruit zouden halen en een meting in de plaats zouden gebruiken gaan we zien dat de filesize bij het opslaan kleiner is geworden omdat de verschillende waarden niet opgeslagen hoeven te worden voor elke rij.

Meting TotalSalesM in plaats van de calculated column

Oplossing meting TotalSalesM

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

En hier herkennen we al één van de expliciete metingen die we eerder aanmaakten, nl.
SalesAmountM = SUM(Sales[SalesAmount]). We kunnen hier dus deze gebruiken.

De uitdrukking wordt dan:

TotalSalesM = Sales[Sales] + SUM(Sales[TaxAmt])

Deze TotalSalesM 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 som of SalesAmount en som of TotalSalesAmountM wegklikken en vervangen door, enerzijds de data uit TotalSalesAmountM en TotalSalesM, 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.