Перейти к содержимому


Как менять в тексте описания только одну фразу, на др. из соседней ячейки?

VBA

  • Вы не можете ответить в тему
Сообщений в теме: 6

#1 hels

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 176 сообщений
Репутация: 3
Начинающий

Отправлено 03 July 2013 - 08:19 AM

Вопрос собственно говоря такой, есть у меня две колонки в Excel, в одной колонке у всех ячеек одинаковое описание ~350 символов там есть некое слово "товар" которое нужно заменить словом из соседней ячейки "определенный товар", которое будет на каждой ячейке разным. Есть варианты как это можно сделать VBA, формулы, макросы?(может проги есть какие?) Практиковал кто подобное, или все вручную меняют? (у меня например нужно делать 3 замены в каждой ячейке, сейчас делаю все вручную, 5к товаров осталось мозг уже плывет..)
  • 0

#2 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 03 July 2013 - 09:36 AM

использовать макросы
и предвидя общую ситуацию : дополнительная информация в google
  • 0
Изображение Изображение Изображение

#3 hels

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 176 сообщений
Репутация: 3
Начинающий

Отправлено 03 July 2013 - 10:13 AM

использовать макросы и предвидя общую ситуацию : дополнительная информация в google

искал и в гугле и в яше, но примеров не удалось найти.. а как с 0 написать такой макрос я не знаю.. записать действие тоже не проканает.. уже попробовал.
  • 0

#4 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 03 July 2013 - 01:33 PM

Сохранить в любой текстовый файл (CSV, XML), далее писать скрипт или программу на любом знакомом языке для обработки этого текста.
Думаю, на PHP это будет не больше десяти строк. На других ЯВУ примерно так же.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#5 micehide

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 359 сообщений
Репутация: 124
Мастер

Отправлено 04 July 2013 - 02:46 AM

Если вы можете создать отдельную колонку со значениями "товар", т.е. у вас будет 3 колонки:
  • "определенный товар" - на что менять нужно
  • текст с множествеными вкроплениями "товар" - это где менять нужно этот "товар"
  • "товар" - это значение того что нужно изменить
Тогда все это делается простыми формулами, ну или одной длинной: ищется последовательно "товар" в тексте и на выходе получаем начальные позиции этих значений в тексте, а потом заместо этих позиций подствавляем "определенный товар" и все, копируем формулу по всем строкам и получаем измененную уже. Просто нужно будет условия расставить грамотно, чтобы разное ко-во замен в строках работало по одной формуле (если разнное кол-во вхождений "товара" в строках).

Короче, если так сможешь на 3 столбца сделать, то первый столбец (A) - это новое значение ("определенный товар"), второй (B) - старое искомое значение ("товар") и столбец третий © - текст в котором нужно заменить B на A. Вот тогда вставляешь в четвертый столбец формулу:

=ЕСЛИ(ЕЧИСЛО(НАЙТИ($B2;C2;1));ЗАМЕНИТЬ(C2;НАЙТИ($B2;C2;1);ДЛСТР($B2);$A2);C2)

и растягиваешь ее направо на 10 ячеек (ну сколько там у тебя максимально может это слово встречаться в тексте раз), а потом все это растягиваешь вниз по строкам всем и копируешь последний столбец с формулой как занчения - там и будет результирующий текст.
  • 0

#6 hels

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 176 сообщений
Репутация: 3
Начинающий

Отправлено 12 July 2013 - 01:37 PM

и растягиваешь ее направо на 10 ячеек (ну сколько там у тебя максимально может это слово встречаться в тексте раз), а потом все это растягиваешь вниз по строкам всем и копируешь последний столбец с формулой как занчения - там и будет результирующий текст.

спс, первое значение меняет, а вот дальше ничего не меняет.. если растягивать направо формулу, он просто берет другие ячейки в формулу подставляет, соответственно не пашет.. щас еще попробую -

условия расставить грамотно, чтобы разное ко-во замен в строках работало по одной формуле (если разнное кол-во вхождений "товара" в строках).

правда у меня количество замен одинаково всюду.. по 3 замены
  • 0

#7 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 12 July 2013 - 02:50 PM

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

1. Есть слово "товар", заменяем его автозаменой на *товар*, т.е. звездочка товар звездочка
2. Выделяем все эти позиции и переносим в ворд
3. В ворде если вставилась таблица то нажимаем Таблица/Преобразовать в текст, знак разделения знак абзаца. Удаяем автозаменой все лишние знаки абзацев.
4. Выделяем все эти строки и снова преобразовываем в таблицу внизу знак разделения ставим * (звездочка)
Таким образом выйдет таблица из 3 ячеек, средняя это как раз слово товар
5. Копируем первую колонку в столбец А, копируем вторую колонку в столбец В (всмысле колонку в которой уже идут фразы "определенный товар")
ну и копируем третью колонку из ворда где продолжение
6. Из екселя переносим опять новую таблицу в Ворд, там же снова преобразовывает таблицу в текст, знак разделения абзац
7. Копируем готовую таблицу в Ексель.

Вродебы пунктов много но на все уйдет ну минут 10, при условии что ворд не вылетит от кол-ва строк.
  • 0