Ваша формула отлично работает для меня (я использую Excel 2016), чтобы вернуть строку, которая будет удалена, включая случаи, когда строка, которая должна быть удалена, состоит из более чем одного слова. Однако, поскольку он захватывает последний соответствующий элемент в списке поиска, вам нужно изменить порядок поиска в списке с самой короткой строки на самую длинную, чтобы убедиться, что она получает самую длинную соответствующую строку:
*lookup list Fake Fake Tab Fake table Fake Tablet
После того как вы внесли это изменение, эта формула возвращает последнюю строку:
=TRIM(SUBSTITUTE(LOWER(B2),TRIM(LOWER(IFERROR(LOOKUP(1E+100,SEARCH($A$6:$A$9,B2,1),$A$6:$A$9),""))),""))
Эта формула возвращает:
great number two
Эта формула имеет ограничение, что только одна строка из столбца A будет найдена и удалена. Вы можете найти и удалить больше, дублируя формулу в большем количестве столбцов, но, учитывая, что ваш список поиска «массивный», вероятно, не практично найти их все. Если вы хотите найти и удалить всех членов массивного списка поиска, я бы использовал VBA.