Формула Excel: XLOOKUP переупорядочить столбцы -

Содержание

Общая формула

=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 (точное совпадение)
  • Search_mode не предоставляется и по умолчанию равен 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). Результат - исходный результат поиска с полями, расположенными в новом порядке.

Интересные статьи...