Страницы: 1
RSS
Ограничить тип символов, которые могут идти после искомого значения, которое используется как подстрока
 
Всем привет,
Если честно с таким описанием темы, как я описал, я бы сам ничего не понял :)))

Попробую сформулировать на примере.

Я беру значение (текстовую строку) из ячейки А1 и ищу в ячейке В1 входит ли это значение как подстрока (если быть совсем точным, я использую эту формулу https://www.excel-vba.ru/chto-umeet-excel/kak-scepit-neskolko-znachenij-v-odnu-yachejku-po-kriteriyu-scepitesli/).

Возникла проблема. Обе ячейки содержат ID. Ячейка A1, как источник искомого значения, содержит только один айдишник, допустим это ID-1.
Ячейка В1 может не содержать значений вообще, или содержать одно значение, или содержать несколько значений. Допустим там такая строка ID-22, ID-123

Чтобы искать как вхождение подстроки в строку, я беру значение из А1 и окружаю его символами *. Это выглядит вот так "*"&$A1&"*".
И получается, что в данном случае формула считает, что значение из ячейки А-1 входит как подстрока в строку из В-1, но ID-1 и ID-123 это разные айдишники с точки зрения системы где они используются (внешней системы).

Вопрос: Можно ли как-то с помощью синтаксиса сказать что-то типа: ищи вхожение подстроки, но * будет означать не любое количество любых символов, а любое количество символов, не являющихся цифрами (то есть допускает дополнять значение из А1 чем угодно, но не цифрами, а например пробелами, запятыми или вообще ничем)?  
 
Без файла-примера помощь ждать будете, скорее всего, очень долго...
 
Ставьте после каждого ID-xxx пробел, запятую или любой другой обязательный признак окончания ID. А потом указывайте этот признак в строке поиска между звездочками. Тогда проблемы у Вас могут возникнуть только с последними ID в строке, если будет лениться использовать там этот признак.
 
Файл с примером постараюсь прилепить позже, спасибо)

По поводу признака, это не возможно, т.к. разные люди работают с внешней системой и все данные я экспортирую в эксель, чтобы с ними по-колдовать. Как вариант, разве что я сам буду расставлять этот знак уже в екселе, надо подумать, спасибо)
 
Можно в таком стиле: для разделителей пробел и запятая (легко дополняется):
Код
=НЕ(И(ЕОШИБКА(ПОИСК("*"&A1&" *";B1&" "));ЕОШИБКА(ПОИСК("*"&A1&",*";B1&","))))

Сейчас придут формулисты и переделают коротко и непонятно. :D  
Владимир
 
Владимир, спасибо!
Попробую - отпишусь)
Страницы: 1
Наверх