LOOKUPVALUE
Dotyczy:kolumna obliczeniowatabela obliczeniowaMeasureobliczenia wizualne
Zwraca value dla wiersza spełniającego kryteria all określone przez jeden or więcej warunków search.
Składnia
LOOKUPVALUE (
<result_columnName>,
<search_columnName>,
<search_value>
[, <search2_columnName>, <search2_value>]…
[, <alternateResult>]
)
Parametry
Termin | Definicja |
---|---|
result_columnName |
Nazwa istniejącej kolumny, która containsvalue, którą chcesz zwrócić. Nie może to być wyrażenie. |
search_columnName |
Nazwa istniejącej kolumny. Może ona znajdować się w tej samej tabeli co result_columnName or w tabeli related. Nie może to być wyrażenie. Można określić wiele par search_columnName and search_value. |
search_value |
value search dla search_columnName. Można określić wiele par search_columnName and search_value. |
alternateResult |
(Opcjonalnie) value zwrócony, gdy kontekst result_columnName został odfiltrowany do zera or więcej niż jeden odrębny value. If not określony funkcja zwraca BLANK, gdy result_columnName jest filtrowana do zera valuesorerror, gdy w kontekście result_columnName istnieje więcej niż jeden odrębny value. |
Zwracanie value
value
result_columnName
w wierszu, w którym all pary search_columnName
andsearch_value
mają dopasowanie exact.
If nie ma dopasowania, które spełnia all zwracany jest searchvalues, BLANKoralternateResult
(określonyif). Innymi słowy, funkcja nie zwraca odnośnika, valueif tylko niektóre kryteria są zgodne.
If wiele wierszy odpowiada searchvaluesandvalues w result_columnName
dla tych wierszy są identyczne, a następnie zwracana jest value. Jednak ifresult_columnName
zwraca różne values, zwracany jest errororalternateResult
(określonyif).
Uwagi
If istnieje relacja między tabelą, która contains kolumnę wyników and tabel, które zawierają kolumny search, w większości przypadków użycie funkcji RELATED zamiast LOOKUPVALUE jest bardziej wydajne, and zapewnia lepszą wydajność.
Można określić wiele par
search_columnName
andsearch_value
.Parametry
search_value
andalternateResult
są oceniane, zanim funkcja iteruje wiersze tabeli search.Unikaj używania funkcji ISERRORorIFERROR do przechwytywania error zwróconych przez LOOKUPVALUE. If niektórych danych wejściowych funkcji powoduje error, gdy nie można określić pojedynczego value wyjściowego, podając parametr
alternateResult
jest najbardziej niezawodnym and najbardziej wydajnym sposobem obsługi error.Parametr
alternateResult
zwraca errorif określony w kolumnie obliczeniowej Power Pivot.Ta funkcja jest not obsługiwana do użycia w trybie DirectQuery w przypadku użycia w kolumnach obliczeniowych or reguł zabezpieczeń na poziomie wiersza.
Przykład 1
W tym przykładzie LOOKUPVALUE służy do searchAverageRate za currency użyte do zapłaty za zamówienie na day złożone zamówienie:
Exchange Rate =
LOOKUPVALUE (
'Currency Rate'[Average Rate],
'Currency Rate'[CurrencyKey], [CurrencyKey],
'Currency Rate'[DateKey], [OrderDateKey]
)
Oba DateandCurrency Zamówienia są wymagane do findAverageRate dla poprawnego dateandcurrency. OrderDateKey and CurrencyKey to klucze używane do wyszukiwania AverageRate w tabeli CurrencyRate.
Możesz użyć Rate Exchange, aby calculate kwotę sprzedaży w currency lokalnych za pomocą:
Sales Amount Local Currency = [Sales Amount] * [Exchange Rate]
Przykład 2
W tym przykładzie następująca kolumna obliczeniowa zdefiniowana w tabeli
CHANNEL =
LOOKUPVALUE (
'Sales Order'[Channel],
'Sales Order'[SalesOrderLineKey],
[SalesOrderLineKey]
)
Jednak w tym przypadku, ponieważ istnieje relacja między tabelami Sales OrderandSales, bardziej wydajne jest użycie funkcji RELATED.
CHANNEL = RELATED('Sales Order'[Channel])