
Formuła ogólna
=XLOOKUP(A1,months,XLOOKUP(A2,names,data))
Podsumowanie
Aby przeprowadzić dwa wyszukiwania za pomocą funkcji XLOOKUP (podwójny XLOOKUP), możesz zagnieździć jeden XLOOKUP w drugim. W pokazanym przykładzie formuła w H6 to:
=XLOOKUP(H5,months,XLOOKUP(H4,names,data))
gdzie miesiące (C4: E4) i nazwy (B5: B13) oraz dane (C5: E13) to nazwane zakresy.
Wyjaśnienie
Jedną z funkcji XLOOKUP jest możliwość wyszukiwania i zwracania całego wiersza lub kolumny. Ta funkcja może być używana do zagnieżdżania jednej XLOOKUP wewnątrz drugiej w celu wykonania wyszukiwania dwukierunkowego. Wewnętrzny XLOOKUP zwraca wynik do zewnętrznego XLOOKUP, który zwraca wynik końcowy.
Uwaga: XLOOKUP domyślnie wykonuje dokładne dopasowanie, więc tryb dopasowania nie jest ustawiony.
Działając od wewnątrz, wewnętrzny XLOOKUP służy do pobierania wszystkich danych dla „Frantz”:
XLOOKUP(H4,names,data)
XLOOKUP znajduje „Frantz” w nazwanych nazwach zakresów (B5: B13). Frantz pojawia się w piątym wierszu, więc XLOOKUP zwraca piąty wiersz danych (C5: E13). Wynikiem jest tablica reprezentująca pojedynczy wiersz danych dla Frantza, zawierająca 3 miesiące sprzedaży:
(10699,5194,10525) // data for Frantz
Ta tablica jest zwracana bezpośrednio do zewnętrznej XLOOKUP jako tablica_powrotu:
=XLOOKUP(H5,months,(10699,5194,10525))
Zewnętrzny XLOOKUP znajduje wartość w H5 („Mar”) wewnątrz nazwanego zakresu miesięcy (C4: E4). Wartość „Mar” pojawia się jako trzecia pozycja, więc XLOOKUP zwraca trzecią pozycję z danych sprzedaży, wartość 10525.
Bez nazwanych zakresów
Nazwane zakresy użyte w tym przykładzie służą tylko do odczytu. Bez nazwanych zakresów formuła wygląda następująco:
=XLOOKUP(H5,C4:E4,XLOOKUP(H4,B5:B13,C5:E13))
INDEKS i MECZ
Ten przykład można rozwiązać za pomocą INDEX i MATCH w następujący sposób:
=INDEX(C5:E13,MATCH(H4,B5:B13,0),MATCH(H5,C4:E4,0))
INDEX i MATCH to dobre rozwiązanie tego problemu i prawdopodobnie łatwiejsze do zrozumienia dla większości ludzi. Jednak wersja XLOOKUP prezentuje moc i elastyczność XLOOKUP.