
Formuła ogólna
=XLOOKUP(neworder,oldorder,XLOOKUP(val,lookup,results))
Podsumowanie
XLOOKUP może służyć do zmiany kolejności kolumn poprzez zagnieżdżenie jednej XLOOKUP w drugiej. W przedstawionym przykładzie formuła w G9 to:
=XLOOKUP(G8:J8,B4:E4,XLOOKUP(G5,E5:E15,B5:E15))
Który zwraca dopasowanie wartości w G5, przy czym wszystkie 4 pola znajdują się w innej kolejności.
Wyjaśnienie
Ta formuła używa XLOOKUP dwukrotnie, zagnieżdżając jeden XLOOKUP w drugim. Pierwsza (wewnętrzna) funkcja XLOOKUP służy do wyszukiwania dokładnego dopasowania wartości w G5:
XLOOKUP(G5,E5:E15,B5:E15)
- Lookup_value pochodzi z komórki G5
- Lookup_array to E5: E15 (kody)
- Return_array to B5: E15 (wszystkie pola)
- Nie podano parametru match_mode i domyślnie jest to 1 (dopasowanie ścisłe)
- Nie podano opcji search_mode i domyślnie 1 (od pierwszej do ostatniej)
Wynikiem jest dopasowanie na „AX-160”, zwrócone jako tablica wszystkich czterech pól w pierwotnej kolejności:
(160,130,60,"AX-160")
Wynik ten jest dostarczany bezpośrednio do drugiego (zewnętrznego) XLOOKUP jako zwracany argument tablicy. Wartość wyszukiwania jest podawana jako zakres reprezentujący nową kolejność pól, a tablica wyszukiwania to zakres zawierający pierwotną kolejność nazw pól.
=XLOOKUP(G8:J8,B4:E4,(160,130,60,"AX-160"))
- Lookup_value to zakres G8: J8 (nowa kolejność pól)
- Lookup_array to zakres B4: E4 (stara kolejność pól)
- Tablica_powrotu jest wynikiem z pierwszego XLOOKUP
To jest trudny kawałek. Przekazujemy wiele wartości wyszukiwania, więc XLOOKUP wewnętrznie obliczy wiele pozycji dopasowania. Dla każdej wartości w nowym zakresie kolejności pól XLOOKUP znajdzie pozycję wewnątrz starego zakresu kolejności pól i użyje tej pozycji do pobrania wartości z tablicy zwracanej (wartości zwrócone przez pierwszą funkcję XLOOKUP). Wynikiem jest oryginalny wynik wyszukiwania z polami ułożonymi w nowej kolejności.