У меня есть две разные таблицы Excel. Один столбец таблицы содержит имя сотрудника, а другая таблица содержит несколько имен в одной ячейке и их другие значения. Например.
первая таблица
Джон
Пол
Питер
Акаш
Сэм
Вторая таблица
Ши,Джон,Акаш
Акаш,Питер,Пол
Питер,Джон,Сэм
Теперь я хочу выполнить поиск по имени во второй таблице и вернуть «Да» или «Нет».
решение1
Я не совсем уверен, правильно ли я понял ваш вопрос. Я предполагаю, что:
- Первая таблица содержит одно имя на ячейку.
- Во второй таблице в качестве разделителя всегда используется «,».
- Вы хотите проверить, встречается ли первое имя каждой строки во второй таблице в первой таблице (вернуть TRUE) или нет (вернуть FALSE).
Если это так, то это должно помочь:=NOT(ISERROR(VLOOKUP(LEFT(B1;SEARCH(",";B1)-1);$A$1:$A$5;1;FALSE)))
Объясняю изнутри:
- Сначала я ищу «,» (
SEARCH
это дает мне позицию первого «,»). - Затем я беру нить слева от нее (
LEFT
). - Я ищу эту строку (
LOOKUP
) в таблице и требую, чтобы она точно совпадала (последнийFALSE
аргумент). - Если это не удается, возвращается ошибка, поэтому мы проверим это (
ERROR
вернём TRUE, еслиLOOKUP
результатом является ошибка). - На самом деле мы хотим знать, если он обнаружен, что это ошибка, поэтому я перехожу от TRUE к FALSE и наоборот, используя
NOT
.
С некоторыми «доказательствами»: