
Загальна формула
=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
- Масив_пошуку - 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). Результат - оригінальний результат пошуку з полями, розміщеними в новому порядку.