Замените значение ячейки, только если 2 столбца имеют совпадающие данные

#excel #vba

#excel #vba

Вопрос:

У меня есть 2 листа. Я хочу перебрать все строки и сравнить столбец A на листе 1 со столбцом A на листе 2.

Если есть совпадение, я хочу взять дату из столбца H листа 2 в каждой строке, где столбец A на 2 рабочих листах совпадает, и вставить его в соответствующую строку на листе 1 в столбце I.

Если между значениями в столбце A нет совпадения, я хочу оставить значение в столбце I листа 1 без изменений.

Можете ли вы помочь мне с ответом на это?

Комментарии:

1. Вставьте новый столбец I на листе 1 (это переместит значения столбца I в столбец J). Предполагая, что ваши данные имеют заголовки, затем в новой ячейке I2 (вновь вставленного пустого столбца) используйте формулу VLOOKUP и скопируйте вниз: =IFERROR(VLOOKUP(A2,'worksheet 2'!A:H,8,FALSE),J2) а затем скройте столбец J. Или вы можете скопировать столбец I -> вставить специальные -> значения, а затем удалить столбец J, если это предпочтительнее.

Ответ №1:

Это работает в книге, которую я создал с двумя листами.

Вам нужно добавить это в ячейку, в которую вы хотите поместить информацию, в вашем случае дату, в столбце I таблицы 1.

Вам нужно будет заменить названия листов и ячеек в формуле, чтобы она работала в вашей книге.

В моем примере листы называются Лист1 и Лист2. Сравниваемые ячейки — это I2 на листе 1 и I2 на листе 2, а значение, которое я копирую с листа 2, равно A2, если есть совпадение, если совпадения нет, я передаю пустую строку «».

=ЕСЛИ(Лист1!I2= Лист2!I2, Лист2!A2,»»)

ЕСЛИ (Ячейка I2 листа 1 равна ячейке I2 листа 2, скопируйте значение ячейки A2 листа 2, если оно не равно, ничего не копируйте.

Если вы видите ошибку, пожалуйста, не стесняйтесь исправлять ее, поскольку я учусь сам.

Я надеюсь, что это поможет, удачи