Прочитайте для конкретного текста и скопируйте текст с другого листа - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь скопировать текст с листа1, на лист2, в зависимости от заголовка.

=IF(Sheet1!A1=Sheet2!A1,Sheet1!A2:A40,(IF(Sheet1!B1=Sheet2!A1,Sheet1!B2:B40,(IF(Sheet1!C1=Sheet2!A1,Sheet1!C2:C40,(IF(Sheet1!D1=Sheet2!A1,Sheet1!D2:D40,(IF(Sheet1!E1=Sheet2!A1,Sheet1!E2:E40,(IF(Sheet1!F1=Sheet2!A1,Sheet1!F2:F40,(IF(Sheet1!G1=Sheet2!A1,Sheet1!G2:G40,"")))))))))))))

=IF(Sheet1!A1=Sheet2!A1,Sheet1!A2:A40,
  (IF(Sheet1!B1=Sheet2!A1,Sheet1!B2:B40,
    (IF(Sheet1!C1=Sheet2!A1,Sheet1!C2:C40,
      (IF(Sheet1!D1=Sheet2!A1,Sheet1!D2:D40,
        (IF(Sheet1!E1=Sheet2!A1,Sheet1!E2:E40,
          (IF(Sheet1!F1=Sheet2!A1,Sheet1!F2:F40,
            (IF(Sheet1!G1=Sheet2!A1,Sheet1!G2:G40
  ,"")))))))))))))

Это неприглядный беспорядок - это то, что у меня так далеко, но оно работает только в 57% случаев. Понятия не имею почему.

Скажем, например, что заголовки были Test1, Test2, Test3 и т. Д., Как я могу сделать так, чтобы Excel считывал sheet1 для заголовка Test1, копировал столбец, начинающий ячейку ниже, и копировал его в любой столбец Test1 включен в лист2?

У меня достаточно базовое понимание формулы Excel и даже меньше VBA, поэтому любая помощь приветствуется.

1 Ответ

0 голосов
/ 17 сентября 2018

Это хорошая задача для INDEX(), передав 0 для одного из аргументов, вы можете указать, что вы хотите, чтобы весь столбец был возвращен (или все строки сопоставленного столбца, чтобы быть более точным):

=INDEX(Sheet1!A2:G40,0,MATCH(Sheet2!A1,Sheet1!A1:G1,0))

Без некоторых примеров данных и ожидаемого результата я не могу объяснить, действительно ли это то, что вы ищете. Пожалуйста, не стесняйтесь предоставлять больше возможностей и оставьте мне комментарий, я обновлю свой ответ.

EDIT: * * 1013

Чтобы получить результаты для столбцов, вы должны собрать поиск примерно так:

=INDEX(Sheet1!$A$2:$G$40,ROW()-1,MATCH(Sheet2!A$1,Sheet1!$A$1:$G$1,0))

Чтобы индексировать данные, которые вы хотите вернуть, затем вернуть текущую строку, в которой вы находитесь (смещение -1, когда данные начинаются со второй строки). MATCH() в конце возвращает позицию заголовка столбца, которая соответствует Sheet2!A$1.

Здесь важно $$, поскольку абсолютные ссылки не позволяют формуле изменяться при перетаскивании ее по листу (Sheet2!A$1 обновляется только при перетаскивании по горизонтали, но не при перетаскивании по вертикали)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...