Как я могу скопировать столбец с одного листа на другой лист на основе заголовка в 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 в качестве этого списка.