Kurs
Datenmodellierung ist die Grundlage für aussagekräftige Power BI-Berichte. Sie hilft dir, klare Tabellenbeziehungen zu definieren und Daten effizient zu organisieren, zu bereinigen und abzurufen. In diesem Tutorial lernst du die Funktion RELATED in Power BI kennen.
Anhand praxisnaher Beispiele siehst du, wie die Funktion RELATED deine Datenmodellierung und dein Reporting verbessert.
Wenn du noch neu bei Power BI bist, kannst du dich mit unserem Lernpfad Power BI Fundamentals mit dem Thema vertraut machen.
Außerdem kannst du dir das DAX-Cheatsheet herunterladen und griffbereit behalten, während du mehr über Power BI und DAX lernst.
DataCamp DAX-Cheatsheet
Was ist die Funktion RELATED in Power BI?
RELATED ist eine Power BI DAX-Funktion, mit der du einen Wert aus einer Spalte in einer verknüpften Tabelle abrufen kannst. Wichtig: Diese Funktion funktioniert nur, wenn zwischen der aktuellen Tabelle und der Tabelle mit der gewünschten Spalte eine Beziehung besteht.
Die Funktion RELATED vereinfacht die Datenmodellierung, indem sie relevante Daten aus verschiedenen Tabellen einbindet, ohne dass du Tabellen manuell zusammenführen oder joinen musst.
So sieht die Syntax der Funktion RELATED aus:
RELATED(ColumnToFetch)
Als einfaches Beispiel nehmen wir eine Sales-Tabelle und eine separate Products-Tabelle an:
|
InvoiceID |
ProductID |
Quantity |
Price |
|
1000 |
123 |
2 |
21 |
|
1001 |
456 |
1 |
19.99 |
|
1002 |
123 |
3 |
31.5 |
|
1003 |
789 |
1 |
24.95 |
Tabelle 1. Sales
|
ProductID |
ProductName |
UnitPrice |
|
123 |
Widget |
10.5 |
|
456 |
Gear |
19.99 |
|
789 |
Gizmo |
24.95 |
Tabelle 2. Products
Die Sales-Tabelle protokolliert Verkaufsvorgänge, einschließlich einer Product ID für jeden Verkauf, aber ohne Produktnamen oder -details. Die Products-Tabelle enthält diese Namen und Details, verknüpft über die jeweilige Product ID.
Ohne RELATED müsstest du die beiden Tabellen zusammenführen, wenn du eine berechnete Spalte in Sales erstellen willst, die den Produktnamen verwendet.
Mit RELATED kannst du in der Sales-Tabelle eine neue Spalte anlegen, die den Product Name für jeden Verkauf direkt aus der Products-Tabelle holt. Du kannst die Funktion RELATED auch in einer Measure verwenden, um diese Information dynamisch abzurufen.
|
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 |
Tabelle 3. Verwendung von RELATED
Beziehungen in Power BI verstehen
In Power BI verknüpfst du Tabellen über gemeinsame Spalten. Diese Beziehungen sind zentral, um Daten aus mehreren Quellen zu integrieren und in deinen Datenmodellen einen relationalen Ansatz umzusetzen.
Beziehungstypen in Power BI
In Power BI gibt es folgende Beziehungstypen:
- One-to-one (1:1): Jede Zeile in einer Tabelle ist genau einer Zeile in einer anderen Tabelle zugeordnet. Diese Art ist eher selten.
- One-to-many (1:n): Eine einzelne Zeile in einer Tabelle kann sich auf viele Zeilen in einer anderen Tabelle beziehen. Das ist der am häufigsten vorkommende Typ in Power BI.
- Many-to-many (n:m): Zeilen in einer Tabelle können sich auf mehrere Zeilen in einer anderen Tabelle beziehen und umgekehrt. Wegen der Komplexität und möglicher Performanceauswirkungen solltest du n:m-Beziehungen mit Bedacht einsetzen.
Warum Beziehungen für RELATED wichtig sind
Die Funktion RELATED nutzt diese Beziehungen, um Daten aus einer verknüpften Tabelle in den Kontext der aktuellen Tabelle zu holen. Ohne korrekt definierte Beziehungen funktioniert RELATED nicht.
Beziehungen liefern RELATED einen klaren Pfad, damit die Funktion weiß, woher sie die Daten holen soll.
Gute Datenmodellierung und sauber definierte Beziehungen sorgen dafür, dass RELATED effizient auf verknüpfte Daten zugreift. So vermeidest du komplexe Lookup-Operationen und verbesserst Performance und Nutzerfreundlichkeit deiner Power BI-Berichte.
Power BI von Grund auf beherrschen
Praxisbeispiele mit der Funktion RELATED
Schauen wir uns nun Beispiele an, um zu verstehen, wie RELATED in der Praxis funktioniert.
Grundlegende Verwendung von RELATED
Angenommen, wir haben eine Tabelle mit monatlichen Produktverkäufen, aber ohne Produktnamen oder -kategorien, nur die ProductID. Außerdem gibt es eine Products-Tabelle mit ProductID, ProductName und Category. Wir erstellen eine Beziehung zwischen diesen beiden Tabellen über die ProductID.
Wir möchten Verkäufe nach Produktkategorie analysieren. Dazu erstellen wir in der Sales-Tabelle eine berechnete Spalte mit folgender DAX-Formel, die wir dann in einem Visual unseres Power BI-Berichts verwenden können:
ProductCategory = RELATED(Products[ProductCategory])
RELATED ist hierfür ideal, weil es eine direkte 1:n-Beziehung zwischen Products und Sales gibt. So lassen sich ProductName oder Category einfach abrufen.
Fortgeschrittenes Szenario
RELATED ist besonders mächtig, wenn du Daten aus einer verknüpften Tabelle in den Kontext der aktuellen Tabelle holen musst.
Die Verwendung von RELATED in einer Measure erlaubt dynamische Berechnungen, die sich je nach aktuellem Filterkontext im Bericht ändern. Measures dienen der Aggregation und können über zeilenkontextbezogene Funktionen wie SUMX verknüpfte Daten einbeziehen.
Wenn du mit der Funktion SUMX noch nicht vertraut bist, findest du in diesem umfassenden SUMX-Tutorial weitere Informationen.
Betrachten wir eine komplexere Variante unseres vorherigen Beispiels. Angenommen, du hast Tabellen mit mehreren Produkten zu unterschiedlichen Preisen und einem dynamischen Verkaufsziel, das je Produkt monatlich variiert. Dein Ziel ist es, die monatliche Verkaufsleistung gegenüber diesen Zielen über verschiedene Produktkategorien hinweg zu verfolgen.
Unser Datenmodell mit einer Sales- und einer Products-Tabelle enthält nun zusätzlich eine SalesTargets-Tabelle mit monatlichen Verkaufszielen für jedes Produkt, darunter die Spalten ProductID, Month und TargetAmount.
Damit die Funktion RELATED korrekt arbeitet, erstellen wir eine Beziehung auf Basis eines zusammengesetzten Schlüssels aus der Kombination von Product ID und Month in sowohl der Sales- als auch der SalesTargets-Tabelle.
Das Ziel ist, den prozentualen Zielerreichungsgrad je Produktkategorie und Monat zu berechnen.
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()
)
Diese Measure berechnet TotalSalesRevenue, indem sie über die Sales-Tabelle iteriert und per RELATED den Preis pro Produkt holt. Anschließend wird MonthlyTarget berechnet, indem die Zielbeträge für den jeweiligen Monat und das Produkt aus der SalesTargets-Tabelle aufsummiert werden.
Zum Schluss wird der Gesamtumsatz durch das Monatsziel geteilt, um den Zielerreichungsgrad zu erhalten. Ein Wert wird nur ausgegeben, wenn ein Ziel gesetzt ist (um Division durch Null zu vermeiden).
Mehr zur Finanzdatenanalyse lernst du im Lernpfad Financial Reporting in Power BI mit praxisnahen Beispielen, die dich Schritt für Schritt durch Analyse und Visualisierung in Power BI führen.
Die RELATED-Funktion in Power BI: Best Practices
Jetzt, da wir ein gutes Verständnis von RELATED haben, schauen wir uns einige Best Practices an.
Nutze RELATED nur bei Bedarf
Setze RELATED ein, wenn du wirklich Daten aus einer anderen Tabelle für Berechnungen in den Kontext deiner aktuellen Tabelle holen musst. Das ist besonders hilfreich für berechnete Spalten, die den Berichtsbau vereinfachen.
Übermäßiger Einsatz von RELATED kann zu unnötig komplexen Datenmodellen führen und die Performance beeinträchtigen. Wenn du deine Analyse direkt über Beziehungen in Visuals erreichen kannst, ohne Daten physisch in deine Tabelle zu holen, ist das oft effizienter.
Verstehe dein Datenmodell
Bevor du RELATED nutzt, solltest du dein Datenmodell kennen, insbesondere die Beziehungen zwischen den Tabellen. RELATED erfordert eine bestehende aktive Beziehung — typischerweise eine 1:n-Beziehung, bei der die Funktion auf der „n“-Seite verwendet wird, um Daten von der „1“-Seite zu holen.
Die Funktion RELATED funktioniert nicht mit n:m-Beziehungen.
Wenn du RELATED ohne korrekt definierte Beziehungen oder mit missverstandener Richtung der Beziehung verwendest, kann das zu Fehlern oder unerwarteten Ergebnissen führen.
Beachte die Richtung der Beziehung
Nutze RELATED, um Daten aus einer Primärtabelle (1-Seite) in eine verknüpfte Tabelle (n-Seite) zu holen. Das ist besonders nützlich, wenn du Lookup-Daten aus anderen Tabellen in Berechnungen oder Analysen einbeziehen willst.
Die Verwendung von RELATED in die umgekehrte Richtung (von n nach 1) ohne genaues Verständnis kann verwirren. Für die Gegenrichtung ist RELATEDTABLE oft geeigneter, erfordert aber weitere Aggregationsfunktionen, da es eine Tabelle zurückgibt.
Alternativen zu RELATED
Wenn die Funktion RELATED in Power BI nicht passt, gibt es Alternativen. Zwei davon sind die Funktion LOOKUPVALUE und das Zusammenführen von Daten mit Power Query.
LOOKUPVALUE
LOOKUPVALUE ist äußerst flexibel, kann aber langsamer sein als RELATED. Der Grund: Es durchsucht die Tabelle Zeile für Zeile nach Übereinstimmungen. In unserem Beispiel könnten tausende oder Millionen von Verkaufszeilen die Berichtsleistung deutlich ausbremsen.
LOOKUPVALUE ist für einfache Fälle mit direkter Beziehung oft überdimensioniert. Brauchst du jedoch komplexere Abgleichslogiken, hast keine Beziehungen definiert oder dir ist Performance weniger wichtig, bietet LOOKUPVALUE mehr Flexibilität.
Wenn du mehr erfahren möchtest, lies diese umfassende Anleitung zu DAX LOOKUPVALUE.
Daten mit Power Query zusammenführen
Das Zusammenführen von Tabellen in Power Query erstellt effektiv eine statische Momentaufnahme deiner Daten zum Zeitpunkt des Merges.
Wenn jedoch deine Products-Tabelle häufig aktualisiert wird (neue Produkte oder geänderte Kategorien), spiegelt die zusammengeführte Tabelle diese Updates nicht automatisch wider, ohne beide Tabellen (Products und Sales) zu aktualisieren.
Zusammengeführte Tabellen können sehr groß werden und die Berichtperformance bremsen, besonders wenn du nur einen kleinen Ausschnitt der Daten aus der verknüpften Tabelle benötigst (z. B. eine Produktkategorie).
Fazit
Die Funktion RELATED vereinfacht die Datenmodellierung, indem sie Daten aus verknüpften Tabellen über Beziehungen abruft und manuelle Merges überflüssig macht. So kannst du berechnete Spalten und Measures erstellen, die Daten aus anderen Tabellen dynamisch einbeziehen.
Setze RELATED gezielt ein und hole Daten nur dann in den Kontext der aktuellen Tabelle, wenn es wirklich nötig ist. Ein klares Verständnis des Datenmodells und sauber definierte Beziehungen sind dafür entscheidend.
Wenn du mit Power BI weitermachen willst, probiere diese Ressourcen aus:
Werde ein Power BI Datenanalyst
Beherrsche das beliebteste Business Intelligence Tool der Welt.
FAQs
Kann die Funktion RELATED mit inaktiven Beziehungen verwendet werden?
Nein, die Funktion RELATED kann in Power BI inaktiven Beziehungen nicht direkt nutzen. RELATED ist dafür ausgelegt, mit aktiven Beziehungen zwischen Tabellen zu arbeiten.
In einem Power BI-Modell können zwar mehrere Beziehungen zwischen zwei Tabellen existieren, aber nur eine davon kann aktiv sein. Die aktive Beziehung ist diejenige, die Power BI für die Funktion RELATED automatisch verwendet.
Kann die Funktion RELATED in einer Measure und in einer berechneten Spalte verwendet werden?
RELATED wird typischerweise in berechneten Spalten eingesetzt, kann aber auch in Measures verwendet werden, insbesondere innerhalb iterierender Funktionen wie SUMX, wie wir in diesem Tutorial gesehen haben.
Wird RELATED in einer Measure verwendet, ruft es Daten aus einer verknüpften Tabelle basierend auf dem aktuellen Zeilenkontext der iterierenden Funktion ab. So sind dynamische Berechnungen über verknüpfte Tabellen im Filterkontext der Measure möglich.
Kann die Funktion RELATED über mehrere Tabellen in einer Beziehungskette verwendet werden?
Ja, RELATED kann eine Kette von Beziehungen über mehrere Tabellen hinweg durchlaufen, solange jeder Link in der Kette korrekt definiert ist. So lassen sich auch in komplexen Datenmodellen Daten über Zwischentabellen hinweg mit RELATED abrufen.
Wie beeinflusst der Filterkontext die Verwendung von RELATED in Measures?
RELATED arbeitet in Measures innerhalb des etablierten Filterkontextes, der durch Slicer, Visuals oder andere DAX-Funktionen wie CALCULATE verändert werden kann.
Die von RELATED geholten Werte spiegeln den aktuellen Filterkontext wider und reagieren dynamisch auf Änderungen im Bericht. So entstehen kontextsensitive Berechnungen, die sich an Nutzerinteraktionen anpassen.
