LOOKUPVALUE ist eine praktische DAX-Funktion, um Werte in anderen Tabellen zu finden und abzurufen.
Sie ersetzt zwar keine saubere Datenmodellierung in deinen Power-BI-Berichten, bietet aber viel Flexibilität bei komplexen Ausdrücken mit mehreren Bedingungen – besonders, wenn du LOOKUPVALUE mit anderen DAX-Funktionen kombinierst.
In diesem Tutorial führen wir dich durch die Grundlagen von LOOKUPVALUE, erklären, wie die Funktion arbeitet, wie du sie einsetzt (vor allem in Kombination mit anderen DAX-Funktionen) und welche Performance-Aspekte und Best Practices du in Power BI beachten solltest.
LOOKUPVALUE in Power BI ähnelt stark VLOOKUP in Microsoft Excel. Es lohnt sich jedoch, dich vorab mit DAX und Power BI vertraut zu machen. Unser Power BI Fundamentals-Lernpfad bringt dich schnell auf Kurs, und unser DAX Spickzettel ist eine hervorragende Referenz beim Arbeiten mit DAX-Funktionen.
Die Grundlagen von LOOKUPVALUE
Mit LOOKUPVALUE kannst du einen einzelnen Wert aus einer Spalte in einer anderen Tabelle auf Basis einer oder mehrerer Suchbedingungen abrufen.
Schauen wir uns die Parameter von LOOKUPVALUE genauer an:
result_column: Die Spalte, deren Wert du aus der Zieltabelle abrufen möchtest.
search_column1: Die Spalte in der Zieltabelle, die das Kriterium enthält, das abgeglichen werden soll.
search_value1: Der Wert, nach dem in search_column1 gesucht wird. Das kann ein fester Wert (z. B. Text), das Ergebnis eines Ausdrucks (wie min oder max) oder eine Spalte in der Quelltabelle sein, gegen die LOOKUPVALUE den Abgleich durchführen soll.
[search_column2, search_value2, ...]: Optionale weitere Paare aus Suchspalten und Suchwerten. So kannst du komplexere Suchbedingungen definieren.
[alternateResult]: Der Standard- bzw. alternative Rückgabewert. Wenn LOOKUPVALUE keinen passenden Treffer findet, wird dieser Wert zurückgegeben.
Bei jeder Suche in der Zieltabelle sollte LOOKUPVALUE genau einen eindeutigen Treffer finden. Gibt es mehrere mögliche Treffer, musst du zusätzliche Suchpaare definieren, bis LOOKUPVALUE eine eindeutige Übereinstimmung findet.
Zur Veranschaulichung sehen wir uns im nächsten Abschnitt ein Beispiel an.
Einfache LOOKUPVALUE-Beispiele
Grundlegende Verwendung
Angenommen, du hast eine Produkttabelle mit den Spalten ProductID und ProductName. Du möchtest den Namen des Produkts mit der ID 101 finden.
Product_Name = LOOKUPVALUE(Products[ProductName], Products[ProductID], 101)Bereitgestellt von
Mehrere Suchbedingungen
Angenommen, du hast eine Sales-Tabelle mit den Spalten ProductID, Region und Revenue. Du möchtest den Umsatz für ein bestimmtes Produkt (ID 101) in einer bestimmten Region (East) ermitteln.
Product_Revenue = LOOKUPVALUE(Sales[Revenue], Sales[ProductID], 101, Sales[Region], "East")Bereitgestellt von
Leere Werte behandeln
Wenn die Suchbedingungen keinen Treffer liefern, gibt LOOKUPVALUE einen leeren Wert zurück.
Hier sind zwei Möglichkeiten, damit umzugehen:
Den alternativen Ergebnisparameter von LOOKUPVALUE verwenden.
Die Funktion COALESCE nutzen, um einen Alternativwert festzulegen, falls LOOKUPVALUE leer zurückgibt.
Methode 1: Alternatives Ergebnis
Du kannst in LOOKUPVALUE einen Standard- oder Alternativwert angeben. Das ist ein optionaler Parameter, der ganz am Ende des LOOKUPVALUE-Ausdrucks steht.
Product_Name = LOOKUPVALUE(Products[ProductName], Products[ProductID], 101, "Not Found")Bereitgestellt von
Methode 2: COALESCE
Alternativ kannst du die Funktion COALESCE verwenden, die nahezu identisch funktioniert wie das Angeben eines alternativen Ergebnisses direkt in LOOKUPVALUE.
Je nach Anwendungsfall und Datensatz kann COALESCE jedoch performanter sein. Wenn Geschwindigkeit und Performance für deinen Power-BI-Bericht wichtig sind, lohnt sich ein Blick auf COALESCE.
Beziehungen zwischen deinen Tabellen zu definieren, ist immer gute Datenmodellierungspraxis. Das ist schneller als die DAX-Funktion LOOKUPVALUE zu nutzen und macht dein semantisches Modell jetzt und in Zukunft leichter verständlich.
Erstellst du Beziehungen zwischen deinen Tabellen, kannst du die Funktion RELATED verwenden. In den meisten Fällen ist RELATED einfacher und direkter als LOOKUPVALUE.
Die Funktion RELATED ist ideal, wenn du einen Wert aus einer anderen Tabelle abrufen willst, die in direkter Beziehung zur Quelltabelle steht.
Beispiel: Du möchtest den Kundennamen zur Sales-Tabelle hinzufügen, und es gibt eine direkte Beziehung zwischen Sales und Customers über die CustomerID. Dann kannst du Folgendes verwenden:
LOOKUPVALUE ist allerdings flexibler als RELATED und eignet sich am besten, wenn du Nachschlagen ohne bestehende direkte Beziehung im Modell durchführen musst oder wenn die Kriterien komplex bzw. mehrfach sind. Die Funktion ist vielseitig, sollte aber nicht überstrapaziert werden, da dies die Performance beeinträchtigen kann.
LOOKUPVALUE mit anderen DAX-Funktionen kombinieren
Wir haben bereits gesehen, wie du LOOKUPVALUE mit COALESCE kombinierst, um ein alternatives Ergebnis zu liefern, wenn kein Treffer gefunden wird.
Weitere DAX-Funktionen, die gut mit LOOKUPVALUE harmonieren, sind zum Beispiel CALCULATE und SWITCH.
In diesem Abschnitt zeigen wir dir entsprechende Beispiele.
LOOKUPVALUE & CALCULATE
Die Kombination aus LOOKUPVALUE und CALCULATE ist hilfreich, wenn du Werte aus einer anderen Tabelle abrufen musst, basierend auf einem Berechnungs- oder Filterkontext, der nicht einfach über eine direkte Beziehung oder ein simples Lookup zugänglich ist.
Oft wird das genutzt, um Filter anzuwenden oder die Granularität von Berechnungen zu ändern. In Kombination mit LOOKUPVALUE kannst du die Lookup-Kriterien dynamisch an die Ergebnisse deiner Berechnungen anpassen.
Ein Beispiel: Angenommen, du hast eine Tabelle mit Produkten und deren Umsatzzielen für ein bestimmtes Jahr. Für eine gegebene ProductID möchtest du das Umsatzziel für das aktuelle Jahr abrufen.
So könntest du das mit CALCULATE und LOOKUPVALUE umsetzen:
Product Sales Target =
VAR SpecificProductID =123
VAR CurrentYear =YEAR(TODAY())RETURN
CALCULATE(
LOOKUPVALUE(
SalesTargets[SalesTarget],
SalesTargets[ProductID],
SpecificProductID,
SalesTargets[Year],
CurrentYear
),ALL(SalesTargets))Bereitgestellt von
LOOKUPVALUE & SWITCH
Die Kombination aus LOOKUPVALUE und SWITCH eignet sich gut, wenn du Werte aus einer anderen Tabelle dynamisch nachschlagen und – je nach möglichem Ergebnis – unterschiedliche Rückgaben liefern möchtest.
Falls du mit der SWITCH-Funktion noch nicht vertraut bist, findest du in unserem Tutorial eine ausführliche Einführung.
Ein Beispiel: Du hast einen Sales-Datensatz und eine separate Tabelle mit Provisionssätzen. Der Provisionssatz eines Mitarbeiters hängt von seiner Verkaufsklasse ab, die nicht direkt gespeichert ist, sich aber aus dem gesamten Verkaufsbetrag berechnen lässt.
Du möchtest in der Sales-Tabelle eine berechnete Spalte erstellen, die den Provisionssatz für jeden Verkauf basierend auf der Verkaufsklasse angibt.
Commission Rate =
VAR SalesAmount = Sales[TotalSalesAmount]
VAR SalesTier =
SWITCH(
TRUE(),
SalesAmount <= 500, "Low",
SalesAmount <= 2000, "Medium",
"High"
)
RETURN
LOOKUPVALUE(
CommissionRates[CommissionRate],
CommissionRates[SalesTier],
SalesTier
)
Bereitgestellt von
In diesem DAX-Ausdruck definieren wir mit SWITCH die Verkaufsklasse und verwenden dieses Ergebnis anschließend in LOOKUPVALUE, um den passenden Provisionssatz für diese Klasse abzurufen.
Performance und Best Practices
1. Beziehungen nutzen, wo es geht
Verwende nach Möglichkeit direkte Beziehungen zwischen Tabellen. Beziehungen sind in Power BI für Performance optimiert, und Funktionen wie RELATED sind oft deutlich effizienter als LOOKUPVALUE.
Dieser Ansatz profitiert zudem von internen Optimierungen in Power BI – wichtig, wenn du die Ladezeiten deiner Berichte minimieren willst.
2. Einsatz in berechneten Spalten minimieren
LOOKUPVALUE kann in berechneten Spalten verwendet werden, sollte dort aber sparsam eingesetzt werden. Berechnete Spalten werden beim Daten-Refresh berechnet und können den Prozess, insbesondere bei großen Datensätzen, verlangsamen.
Nutze stattdessen eher Measures, in denen Berechnungen zur Abfragezeit erfolgen und von Query-Optimierungen profitieren können.
3. Leere Ergebnisse sorgfältig behandeln
LOOKUPVALUE gibt einen leeren Wert zurück, wenn kein Treffer gefunden wird. Wie oben beschrieben, ist es wichtig, die passende Methode zur Behandlung in deinen Berichten zu wählen. Du kannst zum Beispiel COALESCE oder den optionalen Alternativparameter von LOOKUPVALUE einsetzen, um Standardwerte bereitzustellen.
4. Datentypen und Groß-/Kleinschreibung
Achte darauf, dass Suchwert und gesuchte Spalte kompatible Datentypen haben, und berücksichtige Groß-/Kleinschreibung. Abweichungen bei Datentypen oder der Schreibweise können zu unerwarteten Ergebnissen oder Fehlern in LOOKUPVALUE führen.
Fazit
Zusammengefasst eröffnet dir LOOKUPVALUE viele Möglichkeiten, Werte aus anderen Tabellen zu finden und abzurufen – besonders in Kombination mit anderen DAX-Funktionen. Sie ersetzt jedoch keine solide Datenmodellierung. Definiere nach Möglichkeit zuerst Beziehungen zwischen Tabellen in deinen Power-BI-Berichten.
Wenn du eine Karriere als Power-BI-Entwickler anstrebst, schau dir unsere Schritt-für-Schritt-Anleitung zum Power-BI-Developer an. Setze dein Power-BI-Lernen am besten mit unserem kompletten Data Analyst in Power BI-Karrierepfad fort – dort lernst du alles, was du für den praktischen Einsatz von Power BI brauchst.
Lerne mehr über Python-Lambda-Funktionen, wozu sie gut sind und wann man sie benutzt. Enthält praktische Beispiele und bewährte Methoden für eine effektive Umsetzung.
Gewinne Vertrauen in die OLS-Regression, indem du ihre theoretischen Grundlagen beherrschst. Erforsche, wie du einfache Implementierungen in Excel, R und Python durchführst.
Erforsche Pythons match-case: eine Anleitung zu seiner Syntax, Anwendungen in Data Science und ML sowie eine vergleichende Analyse mit dem traditionellen switch-case.
Lerne, wie du Schlüssel-Wert-Paare in einem Python-Wörterbuch mit Methoden wie der eckigen Klammer, .update() für viele Einträge und .setdefault() für bedingte Einträge hinzufügst.
LOOKUPVALUEist eine praktische DAX-Funktion, um Werte in anderen Tabellen zu finden und abzurufen.Sie ersetzt zwar keine saubere Datenmodellierung in deinen Power-BI-Berichten, bietet aber viel Flexibilität bei komplexen Ausdrücken mit mehreren Bedingungen – besonders, wenn du
LOOKUPVALUEmit anderen DAX-Funktionen kombinierst.In diesem Tutorial führen wir dich durch die Grundlagen von
LOOKUPVALUE, erklären, wie die Funktion arbeitet, wie du sie einsetzt (vor allem in Kombination mit anderen DAX-Funktionen) und welche Performance-Aspekte und Best Practices du in Power BI beachten solltest.LOOKUPVALUEin Power BI ähnelt starkVLOOKUPin Microsoft Excel. Es lohnt sich jedoch, dich vorab mit DAX und Power BI vertraut zu machen. Unser Power BI Fundamentals-Lernpfad bringt dich schnell auf Kurs, und unser DAX Spickzettel ist eine hervorragende Referenz beim Arbeiten mit DAX-Funktionen.Die Grundlagen von LOOKUPVALUE
Mit
LOOKUPVALUEkannst du einen einzelnen Wert aus einer Spalte in einer anderen Tabelle auf Basis einer oder mehrerer Suchbedingungen abrufen.Die Standardsyntax lautet:
Wenn du neu in DAX und der Syntax bist, schau dir unseren Kurs Introduction to DAX an oder lies kurz in unser DAX-Tutorial für absolute Einsteiger rein. Zusätzlich kannst du dein DAX-Wissen mit unserem Kurs Intermediate DAX vertiefen.
Schauen wir uns die Parameter von
LOOKUPVALUEgenauer an:LOOKUPVALUEden Abgleich durchführen soll.LOOKUPVALUEkeinen passenden Treffer findet, wird dieser Wert zurückgegeben.Bei jeder Suche in der Zieltabelle sollte
LOOKUPVALUEgenau einen eindeutigen Treffer finden. Gibt es mehrere mögliche Treffer, musst du zusätzliche Suchpaare definieren, bisLOOKUPVALUEeine eindeutige Übereinstimmung findet.Zur Veranschaulichung sehen wir uns im nächsten Abschnitt ein Beispiel an.
Einfache LOOKUPVALUE-Beispiele
Grundlegende Verwendung
Angenommen, du hast eine Produkttabelle mit den Spalten ProductID und ProductName. Du möchtest den Namen des Produkts mit der ID 101 finden.
Mehrere Suchbedingungen
Angenommen, du hast eine Sales-Tabelle mit den Spalten ProductID, Region und Revenue. Du möchtest den Umsatz für ein bestimmtes Produkt (ID 101) in einer bestimmten Region (East) ermitteln.
Leere Werte behandeln
Wenn die Suchbedingungen keinen Treffer liefern, gibt
LOOKUPVALUEeinen leeren Wert zurück.Hier sind zwei Möglichkeiten, damit umzugehen:
LOOKUPVALUEverwenden.COALESCEnutzen, um einen Alternativwert festzulegen, fallsLOOKUPVALUEleer zurückgibt.Methode 1: Alternatives Ergebnis
Du kannst in
LOOKUPVALUEeinen Standard- oder Alternativwert angeben. Das ist ein optionaler Parameter, der ganz am Ende desLOOKUPVALUE-Ausdrucks steht.Methode 2: COALESCE
Alternativ kannst du die Funktion
COALESCEverwenden, die nahezu identisch funktioniert wie das Angeben eines alternativen Ergebnisses direkt inLOOKUPVALUE.Je nach Anwendungsfall und Datensatz kann
COALESCEjedoch performanter sein. Wenn Geschwindigkeit und Performance für deinen Power-BI-Bericht wichtig sind, lohnt sich ein Blick aufCOALESCE.LOOKUPVALUE vs RELATED
Beziehungen zwischen deinen Tabellen zu definieren, ist immer gute Datenmodellierungspraxis. Das ist schneller als die DAX-Funktion
LOOKUPVALUEzu nutzen und macht dein semantisches Modell jetzt und in Zukunft leichter verständlich.Erstellst du Beziehungen zwischen deinen Tabellen, kannst du die Funktion
RELATEDverwenden. In den meisten Fällen istRELATEDeinfacher und direkter alsLOOKUPVALUE.Die Funktion
RELATEDist ideal, wenn du einen Wert aus einer anderen Tabelle abrufen willst, die in direkter Beziehung zur Quelltabelle steht.Beispiel: Du möchtest den Kundennamen zur Sales-Tabelle hinzufügen, und es gibt eine direkte Beziehung zwischen Sales und Customers über die CustomerID. Dann kannst du Folgendes verwenden:
LOOKUPVALUEist allerdings flexibler alsRELATEDund eignet sich am besten, wenn du Nachschlagen ohne bestehende direkte Beziehung im Modell durchführen musst oder wenn die Kriterien komplex bzw. mehrfach sind. Die Funktion ist vielseitig, sollte aber nicht überstrapaziert werden, da dies die Performance beeinträchtigen kann.LOOKUPVALUE mit anderen DAX-Funktionen kombinieren
Wir haben bereits gesehen, wie du
LOOKUPVALUEmitCOALESCEkombinierst, um ein alternatives Ergebnis zu liefern, wenn kein Treffer gefunden wird.Weitere DAX-Funktionen, die gut mit
LOOKUPVALUEharmonieren, sind zum BeispielCALCULATEundSWITCH.In diesem Abschnitt zeigen wir dir entsprechende Beispiele.
LOOKUPVALUE & CALCULATE
Die Kombination aus
LOOKUPVALUEundCALCULATEist hilfreich, wenn du Werte aus einer anderen Tabelle abrufen musst, basierend auf einem Berechnungs- oder Filterkontext, der nicht einfach über eine direkte Beziehung oder ein simples Lookup zugänglich ist.Oft wird das genutzt, um Filter anzuwenden oder die Granularität von Berechnungen zu ändern. In Kombination mit
LOOKUPVALUEkannst du die Lookup-Kriterien dynamisch an die Ergebnisse deiner Berechnungen anpassen.Ein Beispiel: Angenommen, du hast eine Tabelle mit Produkten und deren Umsatzzielen für ein bestimmtes Jahr. Für eine gegebene ProductID möchtest du das Umsatzziel für das aktuelle Jahr abrufen.
So könntest du das mit
CALCULATEundLOOKUPVALUEumsetzen:LOOKUPVALUE & SWITCH
Die Kombination aus
LOOKUPVALUEundSWITCHeignet sich gut, wenn du Werte aus einer anderen Tabelle dynamisch nachschlagen und – je nach möglichem Ergebnis – unterschiedliche Rückgaben liefern möchtest.Falls du mit der SWITCH-Funktion noch nicht vertraut bist, findest du in unserem Tutorial eine ausführliche Einführung.
Ein Beispiel: Du hast einen Sales-Datensatz und eine separate Tabelle mit Provisionssätzen. Der Provisionssatz eines Mitarbeiters hängt von seiner Verkaufsklasse ab, die nicht direkt gespeichert ist, sich aber aus dem gesamten Verkaufsbetrag berechnen lässt.
Du möchtest in der Sales-Tabelle eine berechnete Spalte erstellen, die den Provisionssatz für jeden Verkauf basierend auf der Verkaufsklasse angibt.
In diesem DAX-Ausdruck definieren wir mit SWITCH die Verkaufsklasse und verwenden dieses Ergebnis anschließend in
LOOKUPVALUE, um den passenden Provisionssatz für diese Klasse abzurufen.Performance und Best Practices
1. Beziehungen nutzen, wo es geht
Verwende nach Möglichkeit direkte Beziehungen zwischen Tabellen. Beziehungen sind in Power BI für Performance optimiert, und Funktionen wie
RELATEDsind oft deutlich effizienter alsLOOKUPVALUE.Dieser Ansatz profitiert zudem von internen Optimierungen in Power BI – wichtig, wenn du die Ladezeiten deiner Berichte minimieren willst.
2. Einsatz in berechneten Spalten minimieren
LOOKUPVALUEkann in berechneten Spalten verwendet werden, sollte dort aber sparsam eingesetzt werden. Berechnete Spalten werden beim Daten-Refresh berechnet und können den Prozess, insbesondere bei großen Datensätzen, verlangsamen.Nutze stattdessen eher Measures, in denen Berechnungen zur Abfragezeit erfolgen und von Query-Optimierungen profitieren können.
3. Leere Ergebnisse sorgfältig behandeln
LOOKUPVALUEgibt einen leeren Wert zurück, wenn kein Treffer gefunden wird. Wie oben beschrieben, ist es wichtig, die passende Methode zur Behandlung in deinen Berichten zu wählen. Du kannst zum BeispielCOALESCEoder den optionalen Alternativparameter vonLOOKUPVALUEeinsetzen, um Standardwerte bereitzustellen.4. Datentypen und Groß-/Kleinschreibung
Achte darauf, dass Suchwert und gesuchte Spalte kompatible Datentypen haben, und berücksichtige Groß-/Kleinschreibung. Abweichungen bei Datentypen oder der Schreibweise können zu unerwarteten Ergebnissen oder Fehlern in
LOOKUPVALUEführen.Fazit
Zusammengefasst eröffnet dir
LOOKUPVALUEviele Möglichkeiten, Werte aus anderen Tabellen zu finden und abzurufen – besonders in Kombination mit anderen DAX-Funktionen. Sie ersetzt jedoch keine solide Datenmodellierung. Definiere nach Möglichkeit zuerst Beziehungen zwischen Tabellen in deinen Power-BI-Berichten.Wenn du eine Karriere als Power-BI-Entwickler anstrebst, schau dir unsere Schritt-für-Schritt-Anleitung zum Power-BI-Developer an. Setze dein Power-BI-Lernen am besten mit unserem kompletten Data Analyst in Power BI-Karrierepfad fort – dort lernst du alles, was du für den praktischen Einsatz von Power BI brauchst.