Сопоставить текст в двух таблицах

Я пытаюсь сопоставить две таблицы, как показано ниже.

Таблица 1:

Название статьиИдентификационный номер
Университет B: генетические мутации в раковых клетках1
Терапия первой линии при раке легких от Университета А2
Случаи рака легких в больнице университета B3
Терапия первой линии при раке молочной железы (Институт C)4

Таблица 2:

Название университетаКлючевое слово
Университет АВСУниверситет Б
Университет Британской КолумбииУниверситет А
Университет CDEИнститут С

Я хочу добавить столбец «Название университета» в таблицу 1 на основе поиска по ключевым словам в заголовке статьи. Учитывая, что ключевые слова очень похожи и могут быть найдены в разных местах в заголовке статьи, Vlookup не может успешно найти совпадение.

ВПР (даже с опцией [true], т.е. не для точного совпадения) не может правильно найти совпадение.

Можно ли использовать какую-либо другую формулу или бесплатные инструменты?

Большое спасибо

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
3
0
58
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

ИНДЕКС/ПОИСКПОЗ/ПОИСК

Попробуйте эту формулу массива (если у вас нет Office 365, вам нужно использовать Ctrl,Shift+Enter, чтобы подтвердить формулу):

=INDEX(Table2[University Name],MATCH(TRUE,ISNUMBER(SEARCH(Table2[Keyword],[@[Article Title]])),0))

ИСПОЛЬЗОВАНИЕ ФИЛЬТРА И ПОИСКА

Решение предоставлено JvdV Сэр -- Использование функции O365 и Excel 2021 -- FILTER()

• Формула, используемая в ячейке С3

=FILTER(E$3:E$5,ISNUMBER(FIND(F$3:F$5,A3)),"No Match")

FORMULA_SOLUTION

ИСПОЛЬЗОВАНИЕ ПОИСКА И ПОИСКА

Вы также можете попробовать эту формулу, как показано на изображении ниже, работает во всех версиях Excel.

Формула, используемая в ячейке С3

=LOOKUP(9^9,SEARCH(Table2[Keyword],[@[Article Title]]),Table2[University Name])

FORMULA_SOLUTION

Красивый. Что означает 9^9?

VBasic2008 21.03.2022 12:55

@ VBasic2008 Сэр, если мы используем форму «Столбец поиска, отсортированный по возрастанию» для ПРОСМОТРА, 9 ^ 9, 99 ^ 99, 1E + 308 или другое очень большое число будет соответствовать самому последнему элементу в списке при условии, что поиск ключевое слово, которое возвращает числовые данные. Данные в вашем столбце поиска не нужно сортировать, потому что 9^9 будет больше любого возможного значения.

Mayukh Bhattacharya 21.03.2022 13:04

@ VBasic2008 VBasic2008 Сэр, функция ПРОСМОТР имеет уникальную способность игнорировать данные, тип которых отличается от значения поиска, а значения ошибок определенно относятся к другому типу данных. Таким образом, 9 ^ 9 позволит вам найти последнее совпадающее значение, когда у вас есть один или несколько критериев, которые также должны быть удовлетворены. Например, предположим, что вы хотите найти значение в столбце E, когда столбец B «красный», а столбец C больше 10. Тогда вам нужно использовать =LOOKUP(99^99,1/((B2:B1000 = "red")*(C2:C1000>10)),E2:E1000)

Mayukh Bhattacharya 21.03.2022 13:06

@VBasic2008 VBasic2008 Сэр, знаменатель в 1/((B2:B1000 = "red")*(C2:C1000>10)) преобразуется в массив из 1 и 0. Поскольку 1/0 является значением ошибки, выражение массива возвращает массив 1 и DIV/0! значения ошибок. ПРОСМОТР игнорирует эти ошибочные значения и, ища очень большое число (которое он никогда не найдет), ПРОСМОТР находит последнюю строку, в которой удовлетворяются оба критерия, и возвращает соответствующее значение из столбца E.

Mayukh Bhattacharya 21.03.2022 13:07

@VBasic2008 VBasic2008 Сэр, бонусная функция: формулы ПРОСМОТРА, подобные этой, не нужно вводить в виде массива. 9 ^ 9 или 99 ^ 99 также могут быть полезны в формулах ИНДЕКС и ПОИСКПОЗ, где вы ищете индекс на основе номера строки, который может быть довольно большим. Предположим, вы хотите использовать формулу ИНДЕКС и ПОИСКПОЗ для предыдущей задачи. Вы можете ввести массив: =INDEX(E2:E1000,MATCH(99^99,IF(((B2:B1000 = "red")*(C2:C1000>1‌​0))=1,ROW(B2:B1000)-‌​ROW(B2)+1,""),1))

Mayukh Bhattacharya 21.03.2022 13:09

@ VBasic2008 Сэр, вы гораздо более опытны и осведомлены, чем я, до сих пор не знаю, почему вы спросили, я учусь, следя за вашими сообщениями и другими экспертами, но этот работает, я использовал много раз и добился успеха. !

Mayukh Bhattacharya 21.03.2022 13:12

Я уже говорил вам, что я слаб в формулах Excel. В VBA я могу многое. Это было очень поучительно для меня, так как я часто задавался вопросом о «трюках» с LOOKUP. Вы еще раз доказали, что являетесь мастером формул Excel. Продолжайте хорошую работу.

VBasic2008 21.03.2022 13:16

@VBasic2008 VBasic2008 Сэр, большое спасибо за ваши добрые слова, однако я не думаю, что вы слабы, и сэр, вы очень скромны, я слежу за всеми вашими сообщениями в VBA Solutions, то, как вы обрабатываете массивы, просто феноменально! Спасибо, сэр, еще раз за все, что вы делитесь знаниями!

Mayukh Bhattacharya 21.03.2022 13:18

Другие вопросы по теме