Здравствуйте!
Без примеров "как есть - как нужно" не очень понятно, но думаю что понял задачу.
Недавно сталкивался с такой задачей, в рамках работы по унификации одного каталога, более чем на 100к строк. Но там не требовалось слишком много критериев, хотя решение подойдет и если их 50, в том числе.
Создал модель, заполненную случайными данными - категория (наш целевой столбец) и столбец со случайными числовыми значениями. Для иллюстрации добавляю столбец с количеством символов в ячейке (длиной строки).
В первую, пятую и десятую строки вкрапляем интересующие ключевые слова с разными окончаниями "пчел", "театр", "ткан".
После столбца "Категории" добавляем 4 (или сколько потребуется) столбцов. У первых трех в заголовке пусто, а у последнего "Любая фраза".
В первом столбце в первой строке вводим формулу
=ЕСЛИ(ЕЧИСЛО(ПОИСК(C$1;$B2));1;0)
Протягиваем вправо на три столбца с пустыми заголовками. В первой строке в столбце "Любая фраза" пишем формулу
=СУММ(C2:E2)
Протягиваем первую строку добавленных столбцов до конца таблицы.
Рекомендую отключать отображение нулей в ячейках

После этого вы вписываете в заголовки ваши искомые ключевые фразы

И фильтруете ненулевые значения в столбце "Любая фраза"
Update 08.03.2023:
Для пользователей, кто не понял как исключить ложные срабатывания на пустые ячейки, если вы ищете по одному-двум критериям, а не трем: вписываете в незадействованные ячейки абракадабру или любое содержимое, которое точно не встретится в тексте, например "@@@@@"