LOOKUPVALUE
Gilt für:Berechnete SpalteBerechnete TabelleMeasurevisuelle Berechnung
Gibt den Wert für die Zeile zurück, die alle durch eine oder mehrere Suchbedingungen angegebenen Kriterien erfüllt.
Syntax
LOOKUPVALUE (
<result_columnName>,
<search_columnName>,
<search_value>
[, <search2_columnName>, <search2_value>]…
[, <alternateResult>]
)
Parameter
Ausdruck | Definition |
---|---|
result_columnName |
Der Name einer vorhandenen Spalte, die den Wert enthält, den Sie zurückgeben möchten. Es kann kein Ausdruck sein. |
search_columnName |
Der Name einer vorhandenen Spalte. Sie kann sich in derselben Tabelle wie result_columnName oder in einer verknüpften Tabelle befinden. Es kann kein Ausdruck sein. Mehrere Paare von search_columnName und search_value können angegeben werden. |
search_value |
Der wert, nach dem in search_columnName gesucht werden soll. Mehrere Paare von search_columnName und search_value können angegeben werden. |
alternateResult |
(Optional) Der Wert, der zurückgegeben wird, wenn der Kontext für result_columnName nach null oder mehr als einem eindeutigen Wert gefiltert wurde. Wenn nicht angegeben, gibt die Funktion BLANK zurück, wenn result_columnName auf Nullwerte gefiltert wird, oder ein Fehler, wenn mehrere unterschiedliche Werte im Kontext für result_columnName vorhanden sind. |
Rückgabewert
Der Wert von result_columnName
in der Zeile, in der alle Paare von search_columnName
und search_value
eine genaue Übereinstimmung aufweisen.
Wenn keine Übereinstimmung vorhanden ist, die allen Suchwerten entspricht, wird BLANK oder alternateResult
(sofern angegeben) zurückgegeben. Anders ausgedrückt, gibt die Funktion keinen Nachschlagewert zurück, wenn nur einige der Kriterien übereinstimmen.
Wenn mehrere Zeilen den Suchwerten entsprechen und die Werte in der result_columnName
für diese Zeilen identisch sind, wird dieser Wert zurückgegeben. Wenn result_columnName
jedoch unterschiedliche Werte zurückgibt, wird ein Fehler oder alternateResult
(sofern angegeben) zurückgegeben.
Bemerkungen
Wenn es eine Beziehung zwischen der Tabelle gibt, die die Ergebnisspalte und Tabellen enthält, die die Suchspalten enthalten, ist die Verwendung der RELATED-Funktion anstelle von LOOKUPVALUE effizienter und bietet eine bessere Leistung.
Mehrere Paare von
search_columnName
undsearch_value
können angegeben werden.Die Parameter
search_value
undalternateResult
werden ausgewertet, bevor die Funktion die Zeilen der Suchtabelle durchläuft.Vermeiden Sie die Verwendung von ISERROR- oder IFERROR-Funktionen, um einen von LOOKUPVALUEzurückgegebenen Fehler zu erfassen. Wenn einige Eingaben für die Funktion zu einem Fehler führen, wenn ein einzelner Ausgabewert nicht bestimmt werden kann, ist die Angabe eines
alternateResult
Parameters die zuverlässigste und leistungsstärkste Methode zur Behandlung des Fehlers.Der parameter
alternateResult
gibt einen Fehler zurück, wenn er in einer berechneten Power Pivot-Spalte angegeben ist.Diese Funktion wird für die Verwendung im DirectQuery-Modus nicht unterstützt, wenn sie in berechneten Spalten oder Sicherheitsregeln auf Zeilenebene (RLS) verwendet wird.
Beispiel 1
In diesem Beispiel wird LOOKUPVALUE verwendet, um den Durchschnittssatz für die Währung zu durchsuchen, die zum Bezahlen der Bestellung am Tag der Bestellung verwendet wurde:
Exchange Rate =
LOOKUPVALUE (
'Currency Rate'[Average Rate],
'Currency Rate'[CurrencyKey], [CurrencyKey],
'Currency Rate'[DateKey], [OrderDateKey]
)
Sowohl das Bestelldatum als auch die Währung sind erforderlich, um den durchschnittlichen Kurs für das richtige Datum und die richtige Währung zu ermitteln. OrderDateKey und CurrencyKey sind die Schlüssel, die zum Nachschlagen des Mittelwerts in der Tabelle "Währungssatz" verwendet werden.
Sie können den Wechselkurs verwenden, um den Umsatzbetrag in lokaler Währung zu berechnen mit:
Sales Amount Local Currency = [Sales Amount] * [Exchange Rate]
Beispiel 2
In diesem Beispiel verwendet die in der Tabelle Sales tabelle definierte berechnete Spalte die funktion LOOKUPVALUE, um Kanalwerte aus der Tabelle Sales Order zurückzugeben.
CHANNEL =
LOOKUPVALUE (
'Sales Order'[Channel],
'Sales Order'[SalesOrderLineKey],
[SalesOrderLineKey]
)
In diesem Fall ist es jedoch effizienter, die RELATED-Funktion zu verwenden, da es in diesem Fall eine Beziehung zwischen dem Sales Order und Tabellen "Sales" gibt.
CHANNEL = RELATED('Sales Order'[Channel])