Страницы: 1
RSS
Расстановка слов в ячейке и замена разных словоформ одной
 
Здравствуйте.

Есть список предложений в ячейках, необходимо с помощью формул или макроса найти определенные слова в каждом предложении, заменить их на нужную словоформу и поставить их на свое порядковое место в предложении.

Пример прикрепляю. Подскажите, как можно реализовать. Спасибо!
Изменено: qwelip - 16.01.2019 08:29:44
 
Добрый день.
Подскажите пожалуйста.  
 
=СЖПРОБЕЛЫ($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);""))
Повторяющуюся часть (ИНДЕКС(...)) можно заменить именем через диспетчер имён, для лучшей производительности и читабельности.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Вопрос по работе формулы - первые два слова у вас подставляются не через какие либо формулы/вычисления/поиск, а просто ссылками на ячейки, можно как то автоматизировать этот процесс? Тк вариантов первых и вторых слов может быть много и ссылками на ячейки вопрос не решить.

Пример
Изменено: qwelip - 17.01.2019 09:40:34
 
qwelip, я не вижу логики в Вашем примере. Почему из исходной сроки:
Цитата
стоимость замены стекл дома
получается:
Цитата
замена стекла дома стоимость
???
Откуда формуле брать "замена" вместо "замены"?
Откуда формуле брать "стекл" вместо "стекла"?

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Исходная фраза - стоимость замены стекл дома

По требованию к перестановкам все словоформы слова замена (в т.ч замены) должны быть перемещенны на 1 место в предложении (планируется использовать файлик не только для слова замена и его вариантов, а для многих других слов и их словоформ). Слово стекло и все его формы должны стоять на 2 месте в предложении.

Получается 1замена 2стекла дома стоимость

Откуда брать формуле - на сколько я понимаю, должна быть таблица замен к которой формула будет обращаться. Таблица замен для 1 слова, там слова в разных словоформах, если одна из них найдена в предложении, то такое слово меняется на указанную форму и ставится на 1 место. Та же самая логика для 2 слова. Это как я себе представляю.  
 
qwelip, вот, когда будет таблица сопоставлений, тогда и будем думать дальше, а пока... пока.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Я просто не знаю как будет построена логика работы формул.
Можно это так изобразить
 
qwelip, Вы чем дальше, тем больше усложняете задачу. Было:
Цитата
стоимость замены стекл дома
стало:
Цитата
замена стекла дома стоимость
Перестановка слов "стоимость" и "дома" выходят за рамки задачи и для них нет никакого описания по какой логике это сделано (включая перестановки в других фразах с другими словами)?
В рамках поиска целевых слов и вывода их на соотв. место алгоритм следующий:
1) составляете таблицы искомых словоформ и сопоставленных им замен (без пропусков, как в последнем примере);
2) таблицы должны быть на отдельном листе и отсортированы по двум признакам:
а) по замене; б) по длине искомого (по убыванию);
3) ищите в тексте искомые слова и согласно первой найденной добавляете в начало фразы сопоставленную ей словоформу (предварительно удалив из фразы найденное слово);
4) для второго и последующих слов действуйте согласно п.3.
Принцип, как найти целевое слово, Вам показан - дерзайте.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
Вы чем дальше, тем больше усложняете задачу. Было:
Задача по сути не менялась, просто пришлось дополнить доп описанием, чтобы лучше донести идею.

Я не понимаю как работают и как написать формулы массивов, чтобы формула взяла предложение, начала поиск слов из таблицы, нашла совпадение и произвела некие манипуляции. Можете что то порекомендовать почитать на эту тему?

Вот как простой пример, что тут не так?
Изменено: qwelip - 18.01.2019 10:12:23
Страницы: 1
Наверх