Cursus
Datamodellering is de basis voor het bouwen van inzichtelijke Power BI-rapporten. Het stelt je in staat om duidelijke tabelrelaties te definiëren en data efficiënt te organiseren, opschonen en op te halen. In deze tutorial leer je over de functie RELATED in Power BI.
Aan de hand van praktische voorbeelden ontdek je hoe de functie RELATED je vaardigheden in datamodellering en rapportage kan versterken.
Ben je nog nieuw met Power BI? Maak je dan eerst wegwijs met onze skill track Power BI Fundamentals.
Je kunt ook de DAX-cheat sheet downloaden en bij de hand houden terwijl je meer leert over Power BI en DAX.
DataCamp DAX Cheat Sheet
Wat is de functie RELATED in Power BI?
RELATED is een Power BI DAX-functie waarmee je een waarde kunt ophalen uit een kolom in een gerelateerde tabel. Belangrijk is dat deze functie alleen werkt als er een relatie bestaat tussen de huidige tabel en de tabel waar de gewenste kolom zich bevindt.
De functie RELATED vereenvoudigt datamodellering doordat je relevante gegevens uit verschillende tabellen kunt opnemen zonder tabellen handmatig te hoeven mergen of joinen.
Zo ziet de syntaxis van de functie RELATED eruit:
RELATED(ColumnToFetch)
Als eenvoudig voorbeeld: stel dat je een Sales-tabel en een aparte Products-tabel hebt:
|
InvoiceID |
ProductID |
Quantity |
Price |
|
1000 |
123 |
2 |
21 |
|
1001 |
456 |
1 |
19.99 |
|
1002 |
123 |
3 |
31.5 |
|
1003 |
789 |
1 |
24.95 |
Tabel 1. Sales
|
ProductID |
ProductName |
UnitPrice |
|
123 |
Widget |
10.5 |
|
456 |
Gear |
19.99 |
|
789 |
Gizmo |
24.95 |
Tabel 2. Products
De Sales-tabel houdt verkooptransacties bij, inclusief een Product ID voor elke verkoop, maar niet de productnaam of -details. De Products-tabel bevat die namen en details die aan elke Product ID zijn gekoppeld.
Zonder RELATED zou je de twee tabellen moeten mergen als je een berekende kolom wilt maken die de productnaam vanuit de Sales-tabel gebruikt.
Met RELATED kun je een nieuwe kolom in de Sales-tabel maken die direct de Product Name voor elke verkoop toont door deze op te halen uit de Products-tabel. Je kunt de functie RELATED ook in een maat gebruiken om deze informatie dynamisch op te halen.
|
InvoiceID |
ProductID |
Quantity |
Price |
Product Name |
|
1000 |
123 |
2 |
21 |
Widget |
|
1001 |
456 |
1 |
19.99 |
Gear |
|
1002 |
123 |
3 |
31.5 |
Widget |
|
1003 |
789 |
1 |
24.95 |
Gizmo |
Tabel 3. Gebruik van RELATED
Relaties in Power BI begrijpen
In Power BI kun je met relaties tabellen aan elkaar koppelen op basis van gemeenschappelijke kolommen. Deze relaties zijn fundamenteel voor hoe Power BI data uit meerdere bronnen integreert, waardoor je binnen je datamodellen relationeel kunt werken.
Typen relaties in Power BI
De typen relaties die we in Power BI kunnen hebben, zijn:
- Één-op-één (1:1): Elke rij in de ene tabel is gerelateerd aan één (en slechts één) rij in een andere tabel. Dit type relatie komt minder vaak voor.
- Één-op-veel (1:veel): Één rij in de ene tabel kan aan veel rijen in een andere tabel gekoppeld zijn. Dit is het meest voorkomende type relatie in Power BI.
- Veel-op-veel (veel:veel): Rijen in de ene tabel kunnen aan meerdere rijen in een andere tabel gekoppeld zijn en omgekeerd. Gebruik veel-op-veel-relaties met voorzichtigheid vanwege mogelijke complexiteit en prestatie-impact.
Belang van relaties voor de functie RELATED
De functie RELATED maakt gebruik van deze relaties om data uit een gerelateerde tabel op te halen en deze binnen de context van de huidige tabel te brengen. Zonder correct gedefinieerde relaties werkt de functie RELATED niet.
Relaties bieden een duidelijk pad waarlangs RELATED kan navigeren, zodat de functie precies weet waar de data vandaan moet komen.
Goede datamodelleringspraktijken en goed gedefinieerde relaties zorgen ervoor dat de functie RELATED efficiënt toegang heeft tot gerelateerde data. Zo kun je complexe opzoekbewerkingen vermijden en de prestaties en bruikbaarheid van je Power BI-rapporten verbeteren.
Praktische voorbeelden met de functie RELATED
Laten we nu enkele voorbeelden bekijken om te begrijpen hoe RELATED in de praktijk werkt.
Basisgebruik van RELATED
Stel dat we een tabel hebben met maandelijkse productverkopen, maar zonder productnamen of categorieën, alleen de ProductID. We hebben ook een Products-tabel met ProductID, ProductName en Category. We maken een relatie tussen deze twee tabellen op basis van ProductID.
We willen verkopen analyseren per productcategorie. Hiervoor maken we een berekende kolom in de Sales-tabel met de volgende DAX-formule, die we vervolgens kunnen toevoegen aan een visual in ons Power BI-rapport:
ProductCategory = RELATED(Products[ProductCategory])
RELATED is hier perfect voor, omdat er een directe één-op-veel-relatie is tussen Products en Sales, waardoor het eenvoudig is om ProductName of Category op te halen.
Geavanceerd scenario
RELATED is vooral krachtig wanneer je gegevens uit een gerelateerde tabel wilt ophalen in de context van de huidige tabel.
Het gebruik van RELATED in een maat stelt je in staat om dynamische berekeningen uit te voeren die veranderen op basis van de huidige filtercontext van het rapport. Maten worden gebruikt voor aggregaties en kunnen gerelateerde data opnemen via rijcontextfuncties zoals SUMX.
Als je niet bekend bent met de functie SUMX, kun je er meer over leren in deze uitgebreide SUMX-tutorial.
Laten we een complexere versie van ons eerdere voorbeeld verkennen. Stel dat je tabellen hebt met meerdere producten met verschillende prijzen en een dynamisch verkoopdoel dat per product verschilt en maandelijks verandert. Je doel is om de maandelijkse verkoopprestaties ten opzichte van deze doelen te volgen, over verschillende productcategorieën heen.
Ons datamodel, met een Sales- en een Products-tabel, bevat nu ook een SalesTargets-tabel met maandelijkse verkoopdoelen per product, inclusief de kolommen ProductID, Month en TargetAmount.
Om de functie RELATED correct te gebruiken, maken we een relatie op basis van een samengestelde sleutel die een combinatie bevat van Product ID en Month in zowel de Sales- als de SalesTargets-tabellen.
Het doel is om het percentage bereikt verkoopdoel te berekenen voor elke productcategorie, elke maand.
Monthly Target Achievement =
VAR TotalSalesRevenue =
SUMX(
Sales,
Sales[QuantitySold] * RELATED(Products[Price])
)
VAR MonthlyTarget =
SUMX(
Sales,
RELATED(SalesTargets[TargetAmount])
)
RETURN
IF(
MonthlyTarget > 0,
TotalSalesRevenue / MonthlyTarget,
BLANK()
)
Deze maat berekent TotalSalesRevenue door over de Sales-tabel te itereren en RELATED te gebruiken om de prijs per product op te halen. Vervolgens wordt MonthlyTarget berekend door de doelbedragen voor de relevante maand en het product uit de SalesTargets-tabel op te tellen.
Tot slot wordt de totale omzet gedeeld door het maanddoel om het prestatiepercentage te krijgen, waarbij alleen een waarde wordt geretourneerd als er een doel is ingesteld (om deling door nul te voorkomen).
Je kunt meer leren over financiële data-analyse in de skill track Financial Reporting in Power BI, met praktische voorbeelden die je stap voor stap begeleiden bij het analyseren en visualiseren van je data in Power BI.
De functie RELATED in Power BI: best practices
Nu we goed begrijpen hoe RELATED werkt, duiken we dieper in enkele best practices.
Gebruik RELATED alleen wanneer nodig
Pas RELATED toe in gevallen waarin je echt data uit een andere tabel nodig hebt binnen de context van je huidige tabel voor berekeningen. Dit is vooral handig voor het maken van berekende kolommen die het bouwen van rapporten vereenvoudigen.
Overmatig gebruik van RELATED kan leiden tot onnodig complexe datamodellen, wat de prestaties van je rapport kan vertragen. Als je je analyse direct via relaties in visuals kunt bereiken zonder de data fysiek in je tabel te halen, is dat vaak efficiënter.
Begrijp je datamodel
Zorg ervoor dat je je datamodel begrijpt voordat je RELATED gebruikt, vooral de relaties tussen tabellen. RELATED vereist een bestaande actieve relatie — meestal een één-op-veel-relatie waarbij de functie aan de "veel"-kant wordt gebruikt om data van de "één"-kant op te halen.
De functie RELATED werkt niet met veel-op-veel-relaties.
Als je RELATED gebruikt zonder je relaties goed te definiëren of zonder het begrip van de richting van de relatie, kan dat tot fouten of onverwachte resultaten leiden.
Begrijp de richting van de relatie
Gebruik RELATED om data van een primaire tabel (één-kant) naar een gerelateerde tabel (veel-kant) te halen. Dit is vooral nuttig wanneer je lookup-gegevens uit andere tabellen in je berekeningen of analyses wilt opnemen.
RELATED in de omgekeerde richting gebruiken (van veel naar één) zonder goed begrip kan voor verwarring zorgen. Voor de omgekeerde richting is RELATEDTABLE vaak geschikter, al zijn dan verdere aggregatiefuncties nodig omdat deze een tabel retourneert.
Alternatieven voor RELATED
Als de functie RELATED niet past bij je behoeften in Power BI, zijn er alternatieve benaderingen die je kunt overwegen. De twee alternatieven die we hier behandelen zijn de functie LOOKUPVALUE en het mergen van data met Power Query.
LOOKUPVALUE
LOOKUPVALUE is een enorm veelzijdige functie, maar kan trager presteren dan RELATED. Dat komt doordat de tabel rij voor rij wordt doorzocht om een match te vinden. In ons voorbeeld kunnen mogelijk duizenden of miljoenen verkooptransacties de rapportprestaties aanzienlijk vertragen.
LOOKUPVALUE kan onnodig ingewikkeld zijn voor eenvoudige behoeften waarbij een directe relatie bestaat. Maar als je complexere matchcriteria nodig hebt, geen gevestigde relaties hebt, of niet bezorgd bent over prestaties, biedt LOOKUPVALUE meer flexibiliteit.
Wil je meer weten? Lees dan deze uitgebreide gids over DAX LOOKUPVALUE.
Data mergen met Power Query
Tabellen mergen in Power Query creëert in feite een statische momentopname van je data op het moment van mergen.
Maar stel dat je Products-tabel vaak wordt bijgewerkt (nieuwe producten toegevoegd of categorieën gewijzigd). In dat geval weerspiegelt je samengevoegde tabel in Power Query deze updates niet automatisch zonder een refresh van zowel de Products- als de Sales-tabel.
Samengevoegde tabellen kunnen behoorlijk groot worden en je rapporten vertragen, zeker als je slechts in een klein stukje data uit de gerelateerde tabel geïnteresseerd bent (zoals een productcategorie).
Conclusie
De functie RELATED vereenvoudigt datamodellering door data op te halen uit gekoppelde tabellen op basis van relaties, waardoor handmatig mergen overbodig wordt. Zo kun je berekende kolommen en maten maken die dynamisch data uit andere tabellen opnemen.
Gebruik RELATED bij voorkeur strategisch en haal data alleen in de context van de huidige tabel als dat nodig is. Een duidelijk begrip van het datamodel en gevestigde relaties is cruciaal.
Wil je verder leren over Power BI? Probeer dan deze bronnen:
Veelgestelde vragen
Kan de functie RELATED worden gebruikt met inactieve relaties?
Nee, de functie RELATED kan niet rechtstreeks gebruikmaken van inactieve relaties in Power BI. RELATED is ontworpen om te werken met actieve relaties tussen tabellen.
In een Power BI-model kunnen meerdere relaties tussen twee tabellen bestaan, maar er kan er slechts één actief zijn. De actieve relatie is degene die Power BI automatisch gebruikt voor de functie RELATED.
Kan de functie RELATED worden gebruikt in een maat en een berekende kolom?
Hoewel RELATED doorgaans wordt gebruikt binnen berekende kolommen, kan het ook in maten worden gebruikt, met name binnen iteratiefuncties zoals SUMX, wat we in deze tutorial hebben verkend.
Wanneer het in een maat wordt gebruikt, haalt RELATED data op uit een gerelateerde tabel op basis van de huidige rijcontext die door de iteratiefunctie wordt vastgesteld. Dit maakt dynamische berekeningen over gerelateerde tabellen mogelijk binnen de filtercontext van de maat.
Kan de functie RELATED worden gebruikt over meerdere tabellen in een keten van relaties?
Ja, RELATED kan een keten van relaties over meerdere tabellen doorlopen, zolang elke schakel in de keten een correct gedefinieerde relatie heeft. Dit maakt complexe datamodellen mogelijk waarin RELATED data via intermediaire tabellen kan ophalen.
Hoe beïnvloedt filtercontext het gebruik van RELATED in maten?
RELATED werkt binnen de ingestelde filtercontext wanneer het in maten wordt gebruikt, en die kan worden beïnvloed door slicers, visuals of andere DAX-functies zoals CALCULATE.
De waarden die door RELATED worden opgehaald, weerspiegelen de huidige filtercontext, waardoor het dynamisch en responsief is voor veranderingen in het rapport. Dit maakt contextgevoelige berekeningen mogelijk die zich aanpassen aan gebruikersinteracties.

