Страницы: 1
RSS
Поиск части текста в ячейке и выявление совпадения с массивом данных
 
Есть справочник, где присутствуют уникальные ключевые слова (например "услуги", "товары", "перевод" и т.д.), список данных слов в районе 100, но может меняться. Есть некий исходник (10000 строк и 12 столбцов), где в ячейках одного из столбцов находится текст, в котором его часть совпадает с одним из ключевых слов из справочника. Подскажите пожалуйста, как сделать столбец, где соотносится полноценный текст с найденым ключевым словом из справочника. Условие: Полноценный текст содержит не более одного ключевого слова из справочника.  
Изменено: b_dmitry1994 - 17.08.2016 12:09:59
 
Цитата
b_dmitry1994 написал: Нужно сделать...
И вам до свидания... ;)
Кому нужно - тот и делает, нет - заказывает в "Работе".
ps См. Правила пп 2.2, 2.3.
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
http://www.planetaexcel.ru/techniques/2/106/
 
так?
 
Помогло, спасибо огромное! Если несложно, напишите пожалуйста логическую расшифровку для закрепления материала))  
 
Цитата
b_dmitry1994 написал:
Условие: Полноценный текст содержит не более одного ключевого слова из справочника.
а как с этим, если
Цитата
b_dmitry1994 написал:
Помогло, спасибо огромное!
 
Цитата
b_dmitry1994 написал: напишите пожалуйста логическую расшифровку
это вы кому? grigju или мне?
 
Вам, Бахтиёр.
 
Цитата
Hugo написал:
а как с этим, если
Игорь не понял (если вопрос ко мне)
 
В ячейке K6 листа "исходник" формула: =ЕСНД(ПРОСМОТР(;-1/ПОИСК(справочник!A$2:A$5;F6);справочник!A$2:A$5);"")

ПОИСК(справочник!A$2:A$5;F6) вернёт массив {#ЗНАЧ!:#ЗНАЧ!:10:#ЗНАЧ!}
-1/ переделывает этот массив на {#ЗНАЧ!:#ЗНАЧ!:-0,1:#ЗНАЧ!}
ПРОСМОТР(;-1/ПОИСК(справочник!A$2:A$5;F6);справочник!A$2:A$5) ищет 0 (ноль) в получившемся массиве, и не находя (при поиске игнорирует ошибки) его, как бы возвращает самое последнее число, которое меньше его, а это -0,1
Возвращает не самого -0,1, а по его позиции элемент из массива/диапазона "справочник!A$2:A$5", то есть слово "перевод"
ЕСНД нужно для того, на случай если в тексте нет ни одного ключевого слова, тогда вместо ошибки #Н/Д он вернёт заданное (в нашем случае "")
 
 
Супер! Спасибо огромное!!
 
Бахтиёр, я условие "содержит не более одного ключевого слова из справочника" понял как написано - т.е. если есть сразу и услуги, и товары - то не реагируем.
Сейчас формулу проверить не могу, но смотрел на работе - реагировала.
 
Цитата
b_dmitry1994 написал:
Условие: Полноценный текст содержит не более одного ключевого слова из справочника.
Игорь, а я это понял так, что в тексте не может быть и "услуги" и "товары", то есть может быть только один из приведённых слов.

Цитата
b_dmitry1994 написал: Помогло, спасибо огромное!
Цитата
b_dmitry1994 написал: Супер! Спасибо огромное!!

b_dmitry1994, если заглянете в тему, уточните этот момент.
 
Цитата
Бахтиёр написал:
может быть только один из приведённых слов
ну да.
А в файле 111 работает так:
Нужный   столбец...Столбец № 12Столбец сравнения
Предоставляются   услуги по товары компьютеризации товары
и так
Денежный   перевод Western Union перевод перевод
Изменено: Hugo - 18.08.2016 08:37:23
 
Игорь, я имел ввиду, что я понял ТС так:
В т.н. файле "111", в т.н. столбце "Нужный столбец" изначально не может присутствовать фраза, которая содержала бы более одного ключевого слова.

Это понимание исходило из:
Цитата
b_dmitry1994 написал:  Условие: Полноценный текст содержит не более одного ключевого слова из справочника.

То есть я понял эту фразу ТС так, что это - описание текстов, которые могут присутствовать в "Нужном столбце"
Изменено: Бахтиёр - 18.08.2016 08:49:49
 
Ну тогда да.
Но в общем тогда это условие можно было и не озвучивать, оно ведь не влияет на решение.
А вот если нужно проверять что такое слово только одно - тогда влияет.
 
Бахтиер, вы все правильно поняли. Я поставил условие чтобы в нужном столбце выдавался однозначный результат.
 
Бахтиёр, Можно ли как-то дополнить формулу так, чтобы задать сразу большой диапазон для справочника (где будут пустые ячейки для последующего дозаполнения) и она не выдавала бы значение 0 ? Спасибо.
 
Вот что первым пришло в голову
Код
=ЕСНД(ПРОСМОТР(;-1/ПОИСК(справочник!A$2:A$100;F2)/НЕ(ЕПУСТО(справочник!A$2:A$100));справочник!A$2:A$100);"")
смотрите файл
Изменено: Бахтиёр - 19.08.2016 11:58:59
 
Бахтиёр, вроде работает, огромнейшее спасибо за помощь!
Страницы: 1
Читают тему
Наверх