
Obecný vzorec
=XLOOKUP(A1,months,XLOOKUP(A2,names,data))
souhrn
Chcete-li provést dvojité vyhledávání pomocí funkce XLOOKUP (dvojitý XLOOKUP), můžete vložit jeden XLOOKUP do jiného. V zobrazeném příkladu je vzorec v H6:
=XLOOKUP(H5,months,XLOOKUP(H4,names,data))
kde měsíce (C4: E4) a jména (B5: B13) a data (C5: E13) jsou pojmenované rozsahy.
Vysvětlení
Jednou z funkcí XLOOKUPu je schopnost vyhledat a vrátit celý řádek nebo sloupec. Tuto funkci lze použít k vložení jednoho XLOOKUPU do jiného, aby bylo možné provést obousměrné vyhledávání. Vnitřní XLOOKUP vrátí výsledek vnějšímu XLOOKUPU, který vrátí konečný výsledek.
Poznámka: XLOOKUP ve výchozím nastavení provádí přesnou shodu, takže režim shody není nastaven.
Při práci zevnitř ven se vnitřní XLOOKUP používá k načtení všech dat pro „Frantz“:
XLOOKUP(H4,names,data)
XLOOKUP najde „Frantz“ v pojmenovaných názvech rozsahů (B5: B13). Frantz se objeví v pátém řádku, takže XLOOKUP vrátí pátý řádek dat (C5: E13). Výsledkem je pole představující jeden řádek dat pro Frantz, obsahující 3 měsíce prodeje:
(10699,5194,10525) // data for Frantz
Toto pole se vrací přímo do vnějšího XLOOKUPU jako return_array:
=XLOOKUP(H5,months,(10699,5194,10525))
Vnější XLOOKUP najde hodnotu v H5 („Mar“) uvnitř pojmenovaného rozsahu měsíců (C4: E4). Hodnota „Mar“ se zobrazí jako třetí položka, takže XLOOKUP vrátí třetí položku z údajů o prodeji, hodnotu 10525.
Bez pojmenovaných rozsahů
Pojmenované rozsahy použité v tomto příkladu jsou pouze pro čitelnost. Bez pojmenovaných rozsahů je vzorec:
=XLOOKUP(H5,C4:E4,XLOOKUP(H4,B5:B13,C5:E13))
INDEX a MATCH
Tento příklad lze vyřešit pomocí INDEX a MATCH takto:
=INDEX(C5:E13,MATCH(H4,B5:B13,0),MATCH(H5,C4:E4,0))
INDEX a MATCH je dobrým řešením tohoto problému a pro většinu lidí pravděpodobně srozumitelnější. Verze XLOOKUP však ukazuje sílu a flexibilitu XLOOKUP.