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

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

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

id     name     due date

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

id     due date     name

Я хочу, чтобы на моем втором листе было указано, что первая строка - это "id", вторая - "name" и т. Д. Я попытался использовать hlookup, но нашел полезным только заполнение одной ячейки, перетаскивая формулу не слишком хорошо. для меня. Любые идеи о том, как выполнить это с помощью функций в Excel? Я бы предпочел не использовать макрос без крайней необходимости.

2 ответа

Решение
=HLOOKUP(A$1,Sheet1!$A:$C,ROW(),FALSE)

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

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

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

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

Другие вопросы по тегам