Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:
Počítaný sloupec
Počítaná tabulka
míra
vizuální
Vrátí hodnotu řádku, která splňuje všechna kritéria zadaná jednou nebo více podmínkami hledání.
Syntax
LOOKUPVALUE (
<result_columnName>,
<search_columnName>,
<search_value>
[, <search2_columnName>, <search2_value>]…
[, <alternateResult>]
)
Parametry
| Semestr | Definice |
|---|---|
result_columnName |
Název existujícího sloupce, který obsahuje hodnotu, kterou chcete vrátit. Nemůže to být výraz. |
search_columnName |
Název existujícího sloupce Může být ve stejné tabulce jako result_columnName nebo v související tabulce. Nemůže to být výraz. Můžete zadat více dvojic search_columnName a search_value. |
search_value |
Hodnota, kterou chcete vyhledat v search_columnName. Můžete zadat více dvojic search_columnName a search_value. |
alternateResult |
(Volitelné) Hodnota vrácená v případě, že je kontext pro result_columnName filtrován na nulu nebo více než jednu jedinečnou hodnotu. Pokud není zadáno, funkce se vrátí BLANK , když je result_columnName filtrován na nulové hodnoty, nebo chybu, pokud kontext pro result_columnName má více než jednu jedinečnou hodnotu. |
Návratová hodnota
Hodnota result_columnName na řádku, kde mají všechny páry search_columnName a search_value přesnou shodu.
Pokud žádná shoda nesplňuje všechny hodnoty hledání, funkce vrátí BLANK nebo alternateResult (pokud je zadána). Jinými slovy, funkce nevrací vyhledávací hodnotu, pokud se shodují jenom některá kritéria.
Pokud se více řádků shoduje s hledanými hodnotami a hodnotami v result_columnName těchto řádcích jsou identické, vrátí se tato hodnota. Pokud result_columnName ale vrátí jiné hodnoty, vrátí funkce chybu nebo alternateResult (pokud je zadána).
Poznámky
Pokud mezi tabulkou, která obsahuje sloupec výsledků, a tabulkami obsahujícími vyhledávací sloupce existuje relace, ve většině případů je použití RELATED funkce LOOKUPVALUE efektivnější a poskytuje lepší výkon.
Můžete zadat více dvojic
search_columnNameasearch_value.Parametry
search_valueaalternateResultse vyhodnocují před iterací funkce přes řádky vyhledávací tabulky.Při vyhodnocování v kontextu LOOKUPVALUE řádku provede přechod kontextu, například CALCULATEpřevod aktuálního řádku na filtry. V počítaném sloupci to může zavést závislosti na jiných sloupcích ve stejné tabulce, i když výraz tyto sloupce explicitně neodkazuje. Tyto závislosti můžou způsobit chyby cyklických závislostí.
LOOKUPVALUE odebere filtry z tabulky, která obsahuje
result_columnName, se stejným chováním odebrání filtru, jaké ALL je u této tabulky použito. Filtry šířené z jiných tabulek prostřednictvím obousměrných relací můžou stále ovlivnit výsledek vyhledávání. Příklad 3 ukazuje, jak odebrat filtry zdrojové tabulky, pokud by tyto filtry jinak omezily vyhledávání.ISERROR Nepoužívejte nebo IFERROR zachytávejte chybu vrácenou chybou LOOKUPVALUE. Pokud některé vstupy funkce způsobí chybu v případě, že nejde určit jednu výstupní hodnotu, je poskytnutí
alternateResultparametru nejspolehlivějším a nejvýkonnějším způsobem zpracování chyby.Parametr
alternateResultvrátí chybu, pokud je zadaný v počítaném sloupci Power Pivotu.-
Tato funkce není podporována pro použití v režimu DirectQuery při použití v počítaných sloupcích nebo pravidlech zabezpečení na úrovni řádků (RLS).
Příklady v tomto článku můžete použít s ukázkovým modelem Adventure Works DW 2020 Power BI Desktopu. Pokud chcete model získat, podívejte se na DAX ukázkový model.
Příklad 1
V tomto příkladu LOOKUPVALUE vyhledá průměrnou sazbu pro měnu použitou k úhradě objednávky v den, kdy byla objednávka zadána:
Exchange Rate =
LOOKUPVALUE (
'Currency Rate'[Average Rate],
'Currency Rate'[CurrencyKey], [CurrencyKey],
'Currency Rate'[DateKey], [OrderDateKey]
)
K vyhledání průměrné sazby pro správné datum a měnu potřebujete datum objednávky i měnu. OrderDateKey a CurrencyKey jsou klíče použité k vyhledání průměrné sazby v tabulce Kurz měny.
Směnný kurz můžete použít k výpočtu částky prodeje v místní měně pomocí:
Sales Amount Local Currency =
[Sales Amount] * [Exchange Rate]
Příklad 2
V tomto příkladu následující počítaný sloupec definovaný v tabulce Sales používá funkci LOOKUPVALUE k vrácení hodnot kanálu z tabulky Sales Order.
CHANNEL =
LOOKUPVALUE (
'Sales Order'[Channel],
'Sales Order'[SalesOrderLineKey], [SalesOrderLineKey]
)
V tomto případě ale existuje relace mezi tabulkami Sales Order (Prodejní objednávka ) a Sales (Prodejní objednávka), je efektivnější použít RELATED funkci.
CHANNEL =
RELATED ( 'Sales Order'[Channel] )
Příklad 3
V tomto příkladu změňte směr křížového filtru relace mezi Product[ProductKey] a Sales[ProductKey] na Obě. To umožňuje filtrování produktů pomocí filtrů prodeje.
Následující počítaný sloupec v prodeji vyhledá název pevného referenčního produktu. Použití referenčního produktu, nikoli produktu na aktuálním řádku prodeje, ukazuje, jak obousměrné filtry mohou omezit vyhledávání.
Reference Product Name =
VAR ReferenceProductKey = 528
RETURN
LOOKUPVALUE ( 'Product'[Product], 'Product'[ProductKey], ReferenceProductKey )
Přechod mezi interními kontexty vytvoří filtry z aktuálního řádku Sales (Prodej ). Tyto filtry se šíří do produktu prostřednictvím obousměrné relace. Pro řádek prodeje s jiným kódem Product Key vrátí vyhledávání BLANK , i když existuje referenční produkt.
Nahraďte vzorec počítaného sloupce následujícím výrazem. REMOVEFILTERS vymaže filtry prodeje vytvořené přechodem kontextu před vyhledáváním:
Reference Product Name =
VAR ReferenceProductKey = 528
RETURN
CALCULATE (
LOOKUPVALUE ( 'Product'[Product], 'Product'[ProductKey], ReferenceProductKey ),
REMOVEFILTERS ( Sales )
)
Upravený vzorec vrátí název referenčního produktu bez ohledu na produkt na aktuálním řádku prodeje. Po tomto příkladu obnovte původní směr křížového filtru relace.
Související obsah
- funkce RELATED (DAX)
- informační funkce