Как скопировать столбец с одного листа на другой на основе заголовка в Excel?

Как скопировать столбец с одного листа на другой на основе заголовка в Excel?

У меня есть таблица данных, в которой много столбцов, которые могут менять положение. Чтобы было проще пользоваться, я хочу создать вторую таблицу, которая будет хранить столбцы в указанном порядке. Я могу рассчитывать на то, что заголовки столбцов останутся прежними, поэтому я хочу копировать столбцы на основе их заголовка, или, точнее, первой ячейки в столбце, которая соответствует строке.

В качестве примера три столбца на листе 1:

id     name     due date

Но в другом случае листа 1 они могут выглядеть как

id     due date     name

Я хочу, чтобы мой второй лист указывал, что первая строка — «id», вторая — «name» и т. д. Я пытался использовать hlookup, но нашел его полезным только для заполнения одной ячейки, перетаскивание формулы не очень хорошо для меня. Есть идеи, как сделать это с помощью функций в excel? Я бы предпочел не использовать макрос, если это не абсолютно необходимо.

решение1

=HLOOKUP(A$1,Sheet1!$A:$C,ROW(),FALSE)

При заполнении формулы функция ROW() действует как смещение для просмотра следующего столбца в таблице.

решение2

Я часто с этим сталкиваюсь. Один из простых способов решения этой проблемы — сделать так, чтобы столбцы ссылались на первую страницу со смещением. Предполагая, что эти переменные данные находятся на Листе 1, в A1:Q499, а затем на Листе 2, я бы поместил это в ячейку B2:

OFFSET(Sheet1!$A$2,0,MATCH(A$1,Sheet1!$A$1:$Q$1,0)-1,499,)

Для пущей изысканности вы можете установить защиту ячеек на Лист2, A1:Q1, которая допускает только значения из списка, и использовать Лист1 A1:q1 в качестве этого списка.

Связанный контент