LOOKUPVALUE – přiřazení správné hodnoty z jiné tabulky i bez relace (DAX – Power Pivot, Power BI)
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
Tento článek je o funkci LOOKUPVALUE, které přiřazuje hodnoty z jiné tabulky načtené do datového modelu.
Ukážeme si, jak v tomto příkladu propojit dvě tabulky. Jedna tabulka obsahuje informace o prodejích, ale chybí v ní informace o cenách výrobků. Tyto ceny jsou ve druhé tabulce.
Naším úkolem bude přidat ke každé položce v tabulce s prodeji informaci o ceně položky z ceníku. Tedy tabulky propojit.
Do nového sloupečku zapíšeme:
-
Price from pricelist = LOOKUPVALUE(Pricelist[Price];Pricelist[Item];Sales[Item];0)
Protože:
- Price from pricelist je název nového sloupce
- Pricelist[Price] je sloupec v "druhé" tabulce, ze kterého chceme doplnit hodnoty
- Pricelist[Item] je sloupec v "druhé" tabulce, který slouží jako přiřazovací klíč
- Sales[Item]) je sloupec ve stejné tabulce, kam zapisujeme, ke kterému chceme přiřazovat
- 0 je hodnota, která se objeví, pokud nebude v tabulce nalezeno, k čemu přiřazovat - je to tedy na podobném principu, jako bychom LOOKUPVALUE zkombinovali s funkcí IFERROR. Tento argument je volitelný.
Ceny se doplní:
Navíc:
- Princip funkce LOOKUPVALUE je velmi podobný funkci SVYHLEDAT (zatímco ale LOOKUPVALUE funguje v jazyce DAX v Power BI a v Power Pivotu, tak SVYHLEDAT funguje v běžném Excelu).
- LOOKUPVALUE je také hodně podobné daxovské funkci RELATED. Více o rozdílech mezi RELATED a LOOKUPVALUE tady.
- Pokud LOOKUPVALUE najde více hodnot, které odpovídají hledané hodnotě, hodí chybu.
- LOOKUPVALUE umí pracovat i s vícenásobným klíčem - můžete tedy hledat např. podle kombinace názvu a měsíce:
- Pokud se v tabulce, ze které dotahuje data, vyskytuje klíč vícenásobně, zobrazí se standardně chyba. Pokud chcete v takovém případě zobrazit i tak nějakou hodnotu, můžete LOOKUPVALUE nahradit jinou funkcí, třeba takto:
- CALCULATE(
MIN(resulttable[resultcolumn]),
FILTER(resulttable,resulttable[keycolumn]=thistable[keycolumn]
- CALCULATE(
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.