У меня есть два листа Excel, как показано ниже, в рабочей книге.
Лист 1 и 2:
Ниже приведено соотношение полей между двумя листами.
- EID такой же, как EmID
- DepID такой же, как DependentID
- DepDOB — то же самое, что и DependentDOB
Я хотел бы сравнить EID с EmID. Если совпадают, выполните еще одно сравнение DepID с DependentID. Если DepID пуст, то сравните DepDOB с DependentDOB. Когда все это верно, получите DependentFirstName и DependentLastName из Sheet2 и скопируйте их в новый столбец в Sheet 1.
На изображении ниже представлен предполагаемый мной результат.
Выход:
Пожалуйста, посоветуйте метод, как этого добиться. Если VLOOKUP и IF должны быть объединены, пожалуйста, дайте мне знать формулу. Это вызывает у меня кошмары :(
решение1
Решение по запросу
Простой способ сделать это в запрошенном вами порядке — с помощью вспомогательных столбцов. Допустим, лист 1 выглядит как ваш пример вывода, с показанными столбцами A:F, а лист 2 также показывает A:F. Допустим, мы используем столбец G в качестве вспомогательного столбца на каждом листе.
Вспомогательный столбец объединяет три значения сравнения. Таким образом, на каждом листе G2 будет содержать:
=A2&E2&F2
Скопируйте формулу вниз по столбцу на каждом листе. Затем сравните эти значения, чтобы найти нужную вам запись.
VLOOKUP требует, чтобы столбец поиска был самым левым в массиве. Вы можете выполнить тот же стиль поиска с помощью INDEX плюс MATCH, который не имеет этого ограничения. Лист 1, C2 будет содержать:
=INDEX(sheet2!B:C,MATCH(G2,sheet2!G:G,0),1)
и в D2:
=INDEX(sheet2!B:C,MATCH(G2,sheet2!G:G,0),2)
Скопируйте их вниз по столбцу. MATCH находит ключ, который соответствует строке на листе 2, и возвращает соответствующие имена.
Вы можете скрыть вспомогательные столбцы, если не хотите их видеть. Если вам интересно, почему ключи, связанные с DepDOB, не выглядят как дата, то это потому, что он использует внутреннее представление, которое Excel использует для хранения даты.
Более простое решение
В этом случае у вас есть вся информация, необходимая для заполнения полей имени и фамилии, которые уже содержатся в записи. Вместо использования вспомогательных столбцов и подстановок вы можете просто проанализировать поле DepName. C2 будет:
=LEFT(B2,FIND(" ",B2)-1)
и D2 будет:
=RIGHT(B2,LEN(B2)-FIND(" ",B2))