Есть список предложений в ячейках, необходимо с помощью формул или макроса найти определенные слова в каждом предложении, заменить их на нужную словоформу и поставить их на свое порядковое место в предложении.
Пример прикрепляю. Подскажите, как можно реализовать. Спасибо!
=СЖПРОБЕЛЫ($B$12&" "&$C$13&" "&ПСТР($A18;НАЙТИ(ИНДЕКС($B$12:$B$14;АГРЕГАТ(15;6;СТРОКА($1:$3)/(ПОИСК($B$12:$B$14;$A18)^0);1));$A18)+ДЛСТР(ИНДЕКС($B$12:$B$14;АГРЕГАТ(15;6;СТРОКА($1:$3)/(ПОИСК($B$12:$B$14;$A18)^0);1)))+1;100)&" "&ПОДСТАВИТЬ($A18;ПСТР($A18;НАЙТИ(ИНДЕКС($B$12:$B$14;АГРЕГАТ(15;6;СТРОКА($1:$3)/(ПОИСК($B$12:$B$14;$A18)^0);1));$A18);100);"")) Повторяющуюся часть (ИНДЕКС(...)) можно заменить именем через диспетчер имён, для лучшей производительности и читабельности.
Вопрос по работе формулы - первые два слова у вас подставляются не через какие либо формулы/вычисления/поиск, а просто ссылками на ячейки, можно как то автоматизировать этот процесс? Тк вариантов первых и вторых слов может быть много и ссылками на ячейки вопрос не решить.
По требованию к перестановкам все словоформы слова замена (в т.ч замены) должны быть перемещенны на 1 место в предложении (планируется использовать файлик не только для слова замена и его вариантов, а для многих других слов и их словоформ). Слово стекло и все его формы должны стоять на 2 месте в предложении.
Получается 1замена 2стекла дома стоимость
Откуда брать формуле - на сколько я понимаю, должна быть таблица замен к которой формула будет обращаться. Таблица замен для 1 слова, там слова в разных словоформах, если одна из них найдена в предложении, то такое слово меняется на указанную форму и ставится на 1 место. Та же самая логика для 2 слова. Это как я себе представляю.
qwelip, Вы чем дальше, тем больше усложняете задачу. Было:
Цитата
стоимость замены стекл дома
стало:
Цитата
замена стекла дома стоимость
Перестановка слов "стоимость" и "дома" выходят за рамки задачи и для них нет никакого описания по какой логике это сделано (включая перестановки в других фразах с другими словами)? В рамках поиска целевых слов и вывода их на соотв. место алгоритм следующий: 1) составляете таблицы искомых словоформ и сопоставленных им замен (без пропусков, как в последнем примере); 2) таблицы должны быть на отдельном листе и отсортированы по двум признакам: а) по замене; б) по длине искомого (по убыванию); 3) ищите в тексте искомые слова и согласно первой найденной добавляете в начало фразы сопоставленную ей словоформу (предварительно удалив из фразы найденное слово); 4) для второго и последующих слов действуйте согласно п.3. Принцип, как найти целевое слово, Вам показан - дерзайте.
Формула массива (ФМ) вводится Ctrl+Shift+Enter Memento mori
Вы чем дальше, тем больше усложняете задачу. Было:
Задача по сути не менялась, просто пришлось дополнить доп описанием, чтобы лучше донести идею.
Я не понимаю как работают и как написать формулы массивов, чтобы формула взяла предложение, начала поиск слов из таблицы, нашла совпадение и произвела некие манипуляции. Можете что то порекомендовать почитать на эту тему?