Страницы: 1
RSS
Поиск в строке формата текста и вывод его в отдельную колонку - возможно ли?
 
Доброго дня,
С эксель не очень знакома, пытаюсь сделать для ускорения работы программку, которая по критериям текста на основании базы данных будет выводить нужный код к материалам из спецификации.

На данный момент нашла такой путь решения:
- в желтом поле - вводятся данные со спецификации.
- в сером поле - найденный в интернете макрос разбивает наименование на отдельные слова (если нет слова выводит "ничего")
- в зеленом поле - каждое разбитое слово сравнивается с базой на отдельном листе (в файле можно увидеть) и выводит наиболее подходящий код (расценку)
- в голубом поле - итоговый код. Вот тут и возникла проблема лишних нулей, которые никак не придумаю как убрать. Для моей задачи в голубом поле не важно сколько будет пробелов - они не мешают. (в дальнейшем эти данные будут переходить в сметную программу). Часть нулей мне удалось найти как убрать, а вот в позициях где изначально в спецификации задвоение пробелов, они возникают

Буду очень благодарна, если у кого есть идеи или были похожие решения. Думаю есть более изящные способы решения этой задачи )
Так как файл больше 100 кб оставляю ссылку на облако https://cloud.mail.ru/public/EwpT/mFuDxmfdy

P.S. файл заменила, т.к. вышло лучше, но ещё не идеально
 
Цитата
Олеся Лубчинская написал:
Вот тут и возникла проблема лишних нулей, которые никак не придумаю как убрать.
Вас смущает только эта проблема? Какой смысл в указании нескольких кодов по "коробка"? а "ВРУ" - совсем не понятно, там 3 одинаковых но с разными кодами.
По вопросам из тем форума, личку не читаю.
 
Пока да, базу данных буду потом корректировать, так чтобы повторных значений не было или были по-необходимости (иногда один и тот же вариант требует 2 разных кода). А в сметной программе наличие нулей мешает
 
смею предложить вариант
=IFERROR(INDEX('Входные данные'!D:D;1/(1/MOD(MAX(IF(ISNUMBER(SEARCH(" "&'Входные данные'!$B$4:$B$152&" ";" "&A4&" "));LEN('Входные данные'!$B$4:$B$152)+ROW('Входные данные'!$B$4:$B$152)%%;0));1))/1%%+0,1);"-")
который найдет одно значение, которое содержит наиболее длинный фрагмент.
По вопросам из тем форума, личку не читаю.
 
Очень интересный вариант, благодарю! Занимает меньше места и не громоздкий)
Я его обязательно протестирую (ещё попытаюсь прочитать)), думаю на его основе делать уже рабочую версию, ещё раз Вам спасибо!
В старом варианте на работе придумала только убрать лишние пробелы предварительно функцией СЖПРОБЕЛЫ и итоговые данные также обработать
Страницы: 1
Наверх