Kurs
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.
Die Standardsyntax lautet:
LOOKUPVALUE (
<result_columnName>,
<search_columnName>,
<search_value>
[, <search2_columnName>, <search2_value>]…
[, <alternateResult>]
)
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 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
LOOKUPVALUEden 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
LOOKUPVALUEkeinen 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)
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")
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
LOOKUPVALUEverwenden. - Die Funktion
COALESCEnutzen, um einen Alternativwert festzulegen, fallsLOOKUPVALUEleer 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")
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.
Commission Rate =
COALESCE(
LOOKUPVALUE(
'CommissionRates'[Rate],
'CommissionRates'[SalespersonID], SELECTEDVALUE('Sales'[SalespersonID])
),
0.05
)
LOOKUPVALUE vs RELATED
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:
Customer Name = RELATED(Customers[CustomerName])
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)
)
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
)
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.
