Использование vlookup для поиска любой части большей строки в таблице возможных подстрок - PullRequest
1 голос
/ 01 августа 2020

У меня есть таблица кодов. Например,

1 - Big red book
2 - Tall tree
3 - Dancing tiger

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

The boy opened the big red book
They met at tall tree lane
Dancing with the dancing tiger
There was a tall tree in the forest

Мне нужно найти код поиска для каждой входной строки: например, если вход содержит какое-либо значение в таблице поиска, верните идентификатор

Я могу это сделать наоборот, достаточно легко использовать поиск по шаблону ("*"&A1&"*"), что было бы здорово, если бы я хотел найти более короткую строку в большей ... Но я борюсь с таким нечетким соответствием: возможно ли это?

1 Ответ

1 голос
/ 02 августа 2020

Различные способы получения ответа. например:

введите описание изображения здесь

Формула в E1:

=CONCAT(IF(ISNUMBER(SEARCH(" "&B$1:B$3&" "," "&D1&" ")),A$1:A$3,""))

Или немного более дружелюбная к версии Excel:

=INDEX(A:A,MIN(IF(ISNUMBER(SEARCH(" "&B$1:B$3&" "," "&D1&" ")),ROW(B$1:B$3),"")))

В зависимости от вашей версии Excel вы должны подтвердить через Ctrl Shift Введите

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

=SUMPRODUCT((ISNUMBER(SEARCH(" "&B$1:B$3&" "," "&D1&" ")))*A$1:A$3)
...