Скопируйте несколько ячеек из двух отдельных листов на основе ввода - PullRequest
0 голосов
/ 28 июня 2019

У меня три листа:

Sheet 1

Sheet 2

Sheet 3

Я вручную копирую значения из столбца A на листе 1 в столбец A на листе 3 и из столбца A на листе 2 в столбец B на листе 3 (как показано на прилагаемых изображениях).

Значения выбираются на основе столбца A и столбца EEg на листе 3, Q001-1 S1 на листе 1 копируется с G001-3 S3 и G002-2 S2.

Мне бы хотелосьмаксимально упростить этот процесс, потому что он отнимает много времени, однако я не могу найти способ сделать это.

Возможно ли это даже при использовании формул или VBA ??

Ответы [ 2 ]

1 голос
/ 28 июня 2019

если я правильно понял, вам нужно выполнить объединение в Excel, используя идентификатор ячейки в качестве критерия.Я бы использовал Power Query вместо VBA, потому что это инструмент, созданный специально для такого рода задач:

  1. Выберите исходную таблицу и отформатируйте ее как таблицу (Tab Home) - выполните эту операцию для обоихисточник данных Форматирование в виде таблицы
  2. Загрузка обеих таблиц в PowerQuery (щелкните по таблице, затем перейдите в Data / Get и TrasformData и выберите «Из таблицы» PowerQuery , повторите этошаг для обеих таблиц
  3. В таблице 1 выберите вкладку Домой, выберите Объединить, затем выберите идентификатор ячейки в качестве критерия (используйте левое объединение по умолчанию) Присоединитесь
  4. Нажмитев новом столбце для распространения данных удалите ненужные столбцы
  5. Закройте и загрузите (вверху слева) запрос на новый лист (sheet3) - загрузите только выходную таблицу, а не исходные таблицы, поскольку они не являютсянеобходимый
  6. Чтобы автоматизировать процесс, просто добавьте новые строки в исходные таблицы, затем перейдите на вкладку «Данные» и затем «Обновить все». Результаты появятся на листе 3
0 голосов
/ 28 июня 2019

Если ваш план является произвольным или основан на критериях, которые не могут быть определены математически, он не может быть решен только с помощью кода. Однако, если вы хотите спланировать свое расположение на 4-м листе, вы можете написать условные формулы в каждой ячейке на листе 3, которые оценивают ваш план на листе 4 и сравнивать их с ячейками, содержащими строки S1, S2 и S3. В ячейку A2 вы можете вставить следующее:

=IF((EXACT(Sheet1!E2,Sheet4!A2)),Sheet1!A2,IF((EXACT(Sheet1!E3,Sheet4!A2)),Sheet1!A3,Sheet1!A4))

Он оценивает соответствующую ячейку на листе 4 для S1 или S2, если он не видит ни одного, он принимает S3. Затем он выбирает соответствующую ячейку на листе 1. Код в столбце B оценивает соответствующие ячейки на листе 4, используя тот же прием;

=IF((EXACT(Sheet2!E2,Sheet4!B2)),Sheet2!A2,IF((EXACT(Sheet2!E3,Sheet4!B2)),Sheet2!A3,Sheet2!A4))

Затем он выбирает соответствующую ячейку на листе 2. Вы можете перетащить эти ячейки вниз, насколько вам нужно.

Я написал работающую модель и опубликовал ее в GoogleDocs

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