LOOKUPVALUE
Dotyczy: Obliczanie kolumny obliczeniowej tabeli Obliczeniowej Obliczenie wizualizacji
Zwraca wartość wiersza spełniającego wszystkie kryteria określone przez co najmniej jeden warunek wyszukiwania.
Składnia
LOOKUPVALUE (
<result_columnName>,
<search_columnName>,
<search_value>
[, <search2_columnName>, <search2_value>]…
[, <alternateResult>]
)
Parametry
Termin | Definicja |
---|---|
result_columnName | Nazwa istniejącej kolumny zawierającej wartość, którą chcesz zwrócić. Nie może to być wyrażenie. |
search_columnName | Nazwa istniejącej kolumny. Może znajdować się w tej samej tabeli co result_columnName lub w powiązanej tabeli. Nie może to być wyrażenie. Można określić wiele par search_columnName i search_value. |
search_value | Wartość do wyszukania w search_columnName. Można określić wiele par search_columnName i search_value. |
alternateResult | (Opcjonalnie) Wartość zwracana, gdy kontekst dla result_columnName został odfiltrowany do zera lub więcej niż jednej odrębnej wartości. Jeśli nie zostanie określony, funkcja zwraca wartość BLANK, gdy result_columnName jest filtrowana do wartości zerowych lub błąd, gdy w kontekście result_columnName występuje więcej niż jedna odrębna wartość. |
Wartość zwracana
Wartość result_columnName w wierszu, w którym wszystkie pary search_columnName i search_value mają dokładne dopasowanie.
Jeśli nie ma dopasowania spełniającego wszystkie wartości wyszukiwania, zwracana jest wartość BLANK lub alternateResult (jeśli określono). Innymi słowy, funkcja nie zwraca wartości odnośnika, jeśli tylko niektóre kryteria są zgodne.
Jeśli wiele wierszy pasuje do wartości wyszukiwania, a wartości w result_columnName dla tych wierszy są identyczne, zwracana jest ta wartość. Jeśli jednak result_columnName zwraca różne wartości, zwracany jest błąd lub wartość alternateResult (jeśli określono).
Uwagi
Jeśli istnieje relacja między tabelą zawierającą kolumnę wynikową i tabele zawierające kolumny wyszukiwania, w większości przypadków użycie funkcji RELATED zamiast funkcji LOOKUPVALUE jest bardziej wydajne i zapewnia lepszą wydajność.
Można określić wiele par search_columnName i search_value .
Parametry search_value i alternateResult są oceniane, zanim funkcja iteruje wiersze tabeli wyszukiwania.
Unikaj używania funkcji ISERROR lub IFERROR, aby przechwycić błąd zwrócony przez funkcję LOOKUPVALUE. Jeśli niektóre dane wejściowe funkcji spowodują błąd, gdy nie można określić pojedynczej wartości wyjściowej, podanie parametru alternateResult jest najbardziej niezawodnym i najwyższym sposobem obsługi błędu.
Parametr alternateResult zwraca błąd, jeśli określono go w kolumnie obliczeniowej dodatku Power Pivot.
Ta funkcja nie jest obsługiwana w trybie DirectQuery w przypadku użycia w kolumnach obliczeniowych lub regułach zabezpieczeń na poziomie wiersza.
Przykład 1
W tym przykładzie funkcja LOOKUPVALUE służy do wyszukiwania średniej stawki dla waluty używanej do płacenia za zamówienie w dniu złożenia zamówienia:
Exchange Rate =
LOOKUPVALUE (
'Currency Rate'[Average Rate],
'Currency Rate'[CurrencyKey], [CurrencyKey],
'Currency Rate'[DateKey], [OrderDateKey]
)
Zarówno data zamówienia, jak i waluta są wymagane do znalezienia średniej stawki za prawidłową datę i walutę. OrderDateKey i CurrencyKey to klucze używane do wyszukiwania średniej stawki w tabeli Kurs walutowy.
Możesz użyć kursu wymiany, aby obliczyć kwotę sprzedaży w walucie lokalnej za pomocą:
Sales Amount Local Currency = [Sales Amount] * [Exchange Rate]
Przykład 2
W tym przykładzie poniższa kolumna obliczeniowa zdefiniowana w tabeli Sales używa funkcji LOOKUPVALUE do zwracania wartości kanału z tabeli Sales Order .
CHANNEL =
LOOKUPVALUE (
'Sales Order'[Channel],
'Sales Order'[SalesOrderLineKey],
[SalesOrderLineKey]
)
Jednak w tym przypadku, ponieważ istnieje relacja między tabelami Sales Order i Sales , bardziej wydajne jest użycie funkcji RELATED .
CHANNEL = RELATED('Sales Order'[Channel])