PBi_2_Meerdere relaties

Als we inzoomen op de entiteiten ‘Sales‘ en de ‘Calender‘ in ons relatiezicht, dan merk je dat we een relatie gelegd hebben tussen onze ‘Calendar[Date]‘ en onze ‘Sales[OrderDate]‘.

We hebben in onze ‘Sales’-tabel eveneens een [ShipDate]…

Wat gebeurt er als we een bijkomende relatie leggen tussen enerzijds ‘Calendar[Date]‘ en anderzijds ‘Sales[ShipDate]‘?

Zoals je kan zien wordt de relatie in stippellijn weergegeven.

De volle lijn is de actieve relatie, de relatie weergegeven door de stippellijn is momenteel niet actief. In het ‘Relaties beheren‘-venster kan je zien dat die niet aangevinkt is.

Wat gebeurt er als we gaan visualiseren? We kunnen een Sales per Date maken en hierin downdrillen naar ‘Kwartaal’, ‘Maand’ of ‘Dag’, maar onze Sales is hier steeds gebaseerd op onze ‘OrderDate’.

We kunnen van de relatie tussen de ‘Calendar[Date]‘ en de ‘Sales[ShipDate]‘ de actieve relatie maken, door met de rechtermuisknop op de relatie te klikken en ‘Eigenschappen‘ te selecteren. Onderaan het venster kan je ‘Deze relatie activeren’ aanvinken.

JE KRIJGT DAN DE BOODSCHAP DAT ER AL EEN ACTIEVE RELATIE BESTAAT. SLUIT DUS HET SCHERM, DE-ACTIVEER DE RELATIE TUSSEN CALENDER[Date] EN SALES[OrderDate] EN PROBEER OPNIEUW…

Dit is echter niet de oplossing als we beide waarden willen weergeven naast elkaar of in eenzelfde visualisatie….

Ik herbenoem mijn ‘Sales‘ naar ‘OrderDateSales‘ en ga een nieuwe meting aanmaken die ik ‘ShipDateSales‘ noem.

ShipDateSales = CALCULATE(Sum(Sales[SalesAmount]), USERELATIONSHIP(Sales[ShipDate],’Calendar'[Date]))

ShipDateSales = 
CALCULATE(Sum(Sales[SalesAmount]), 
USERELATIONSHIP(Sales[ShipDate],'Calendar'[Date]))

Deze methode is OK als we slechts enkele metingen gebruiken, maar als je met veel verschillende datums zit ga je die allemaal moeten maken, evenals de afgeleiden van die verschillende relaties. Dit is niet echt handig… Voor onze CumSales bijvoorbeeld gaan we ook dezelfde opsplitsing moeten maken en dus gaan we veel verschillende metingen moeten aanmaken.

EXTERNE TOOLS

Het tabblad ‘External Tools’ is bij jullie wellicht niet aanwezig. Nochtans zijn er een aantal toolkits die best wel handig zijn. De ‘Tabular Editor‘ is er daar één van. Deze laat het toe om door middel van één meting alle andere te beheren.

Je vindt de gratis versie van de Tabular Editor HIER.

Je gaat PowerBi moeten heropstarten om hem toegevoegd te zien.

We kunnen de extra metingen die we aanmaakten door middel van de USERELATIONSHIP gewoon terug verwijderen en de Tabular Editor open doen.

  1. Open de Editor.
  2. RMB op ‘Model‘ > ‘Create New‘ > ‘Calculation Group‘.

De nieuwe groep wordt aan jouw ‘Tables’ toegevoegd.

  1. Benoem de nieuwe tabel ‘MeasuresByShipDate‘.
  2. RMB op Calculation Items om een ‘New Calculation Item‘ aan te maken.
  1. Benoem de meting ‘ActieveRelatie‘.
  2. Geef de functie ‘SELECTEDMEASURE()‘ in.
    1. Maak een nieuw ‘Calculation Item‘ en benoem het ‘ByShipDate‘.
    1. Geef de volgende code mee:
    CALCULATE(
        SELECTEDMEASURE(),
        USERELATIONSHIP(
            'Sales'[ShipDate],
            'Calendar'[Date]))
    1. Klik op ‘Bewaren‘.

    Je krijgt de vermelding dat de een nieuwe Calculation Group manueel ververst moet worden.

    De nieuwe tabel ‘MeasuresByShipDate‘ is toegevoegd onder jouw velden.

    1. Voeg een Matrix-tabel toe aan jouw rapportpagina.

    Voeg ‘Month‘ uit de Calendar toe aan het ‘Rows‘-invulveld.
    Voeg de kolom ‘Name‘ toe aan het ‘Columns‘-invulveld.
    Voeg ‘Total Sales‘ en ‘Sale Cum‘ toe aan het ‘Values‘-invulveld.