![](https://cdn.wiki-base.com/7453066/excel_formula_xlookup_rearrange_columns__2.png.webp)
Обща формула
=XLOOKUP(neworder,oldorder,XLOOKUP(val,lookup,results))
Обобщение
XLOOKUP може да се използва за пренареждане на колони, чрез влагане на един XLOOKUP вътре в друг. В показания пример формулата в G9 е:
=XLOOKUP(G8:J8,B4:E4,XLOOKUP(G5,E5:E15,B5:E15))
Което връща съвпадение на стойността в G5, с всички 4 полета в различна последователност.
Обяснение
Тази формула използва XLOOKUP два пъти, като влага един XLOOKUP в друг. Първият (вътрешен) XLOOKUP се използва за извършване на точно съвпадение на стойността в стойността в G5:
XLOOKUP(G5,E5:E15,B5:E15)
- Lookup_value идва от клетка G5
- Lookup_array е E5: E15 (кодове)
- Return_array е B5: E15 (всички полета)
- Режимът match_mode не е предоставен и по подразбиране е 1 (точно съвпадение)
- Режимът на търсене не е предоставен и по подразбиране е 1 (първи до последен)
Резултатът е съвпадение на "AX-160", върнато като масив от четирите полета в първоначалния ред:
(160,130,60,"AX-160")
Този резултат се доставя директно на втория (външен) XLOOKUP като аргумент на масива за връщане. Справочната стойност се предоставя като диапазон, представляващ новия ред на полетата, а масивът за търсене е диапазонът, съдържащ оригиналния ред на имената на полетата.
=XLOOKUP(G8:J8,B4:E4,(160,130,60,"AX-160"))
- Lookup_value е диапазонът G8: J8 (нов ред на полето)
- Lookup_array е диапазонът B4: E4 (стар ред на полето)
- Return_array е резултатът от първия XLOOKUP
Това е сложният бит. Предаваме в множество справочни стойности, така че XLOOKUP вътрешно ще изчисли множество позиции на съвпадение. За всяка стойност в новия диапазон на поръчки на поле, XLOOKUP ще намери позиция в рамките на стария диапазон на поръчки на поле и ще използва тази позиция, за да извлече стойност от масива за връщане (стойностите, върнати от първата функция XLOOKUP). Резултатът е оригиналният резултат за търсене с полета, подредени в новия ред.