Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Замена окончания в текстовых значениях - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Замена окончания в текстовых значениях
122334boss Дата: Суббота, 07.02.2015, 00:32 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 20% ±

Доброй ночи.

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

Например если слово оканчивается на ""КН" - ПРОЛДКН заменить "КН" на "ЦГШ" получим ПРОЛДЦГШ.

Пример прикреплен.

Заранее благодарен.
К сообщению приложен файл: 1541894.xlsx (9.5 Kb)
 
Ответить
СообщениеДоброй ночи.

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

Например если слово оканчивается на ""КН" - ПРОЛДКН заменить "КН" на "ЦГШ" получим ПРОЛДЦГШ.

Пример прикреплен.

Заранее благодарен.

Автор - 122334boss
Дата добавления - 07.02.2015 в 00:32
vikttur Дата: Суббота, 07.02.2015, 00:37 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Это же отвлеченный набор букв, не такой, как в реальности. Реальные показать нет возможности?
Только 4 вида замен?длина заменяемых и подставляемых тоже может иметь значение.
Какой объем данных для таких замен?

Если что-то обще-непонятное:
таблица соответствий замен и макросом пробегать по ячейкам.


Сообщение отредактировал vikttur - Суббота, 07.02.2015, 00:53
 
Ответить
СообщениеЭто же отвлеченный набор букв, не такой, как в реальности. Реальные показать нет возможности?
Только 4 вида замен?длина заменяемых и подставляемых тоже может иметь значение.
Какой объем данных для таких замен?

Если что-то обще-непонятное:
таблица соответствий замен и макросом пробегать по ячейкам.

Автор - vikttur
Дата добавления - 07.02.2015 в 00:37
122334boss Дата: Суббота, 07.02.2015, 00:52 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 20% ±

vikttur,
Это будут замены артикулов, сколько знаков нужно поменять на какие еще нет данных.
Знаю одно, что замены будут не одинаковые по кол-ву знаков.
Вот поэтому я сейчас уточняю, какие есть возможности для реализации задания.
 
Ответить
Сообщениеvikttur,
Это будут замены артикулов, сколько знаков нужно поменять на какие еще нет данных.
Знаю одно, что замены будут не одинаковые по кол-ву знаков.
Вот поэтому я сейчас уточняю, какие есть возможности для реализации задания.

Автор - 122334boss
Дата добавления - 07.02.2015 в 00:52
122334boss Дата: Суббота, 07.02.2015, 00:53 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 20% ±

vikttur,
если есть возможность задавать длину на замену и длину замены, буду признателен.
 
Ответить
Сообщениеvikttur,
если есть возможность задавать длину на замену и длину замены, буду признателен.

Автор - 122334boss
Дата добавления - 07.02.2015 в 00:53
vikttur Дата: Суббота, 07.02.2015, 00:54 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Все-таки покажите пример, приближенный к реальным данным.
 
Ответить
СообщениеВсе-таки покажите пример, приближенный к реальным данным.

Автор - vikttur
Дата добавления - 07.02.2015 в 00:54
122334boss Дата: Суббота, 07.02.2015, 01:10 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 20% ±

vikttur,
Давай те предположим, что нужно заменить 2 знака, на 3 знака.
Есть формула, которая это делает. Если нужно например заменить 1 знак , на 2 знака я смогу самостоятельно изменить формулу, чтобы выполнялось условие? Или под каждую отдельную замену нужно писать новую формулу?
 
Ответить
Сообщениеvikttur,
Давай те предположим, что нужно заменить 2 знака, на 3 знака.
Есть формула, которая это делает. Если нужно например заменить 1 знак , на 2 знака я смогу самостоятельно изменить формулу, чтобы выполнялось условие? Или под каждую отдельную замену нужно писать новую формулу?

Автор - 122334boss
Дата добавления - 07.02.2015 в 01:10
vikttur Дата: Суббота, 07.02.2015, 01:16 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Код
=ПОДСТАВИТЬ(A1;ПРАВБ(A1;3);С15)

Заменит в значении из ячейки А1 три правых символа на значение ячейки С15
Если такой же текст будет не только в конце значения, заменится и он.
В таком случае может помочь
Код
=ЛЕВБ(A1;ДЛСТР(A1)-3)&С15


Сообщение отредактировал vikttur - Суббота, 07.02.2015, 01:19
 
Ответить
Сообщение
Код
=ПОДСТАВИТЬ(A1;ПРАВБ(A1;3);С15)

Заменит в значении из ячейки А1 три правых символа на значение ячейки С15
Если такой же текст будет не только в конце значения, заменится и он.
В таком случае может помочь
Код
=ЛЕВБ(A1;ДЛСТР(A1)-3)&С15

Автор - vikttur
Дата добавления - 07.02.2015 в 01:16
122334boss Дата: Суббота, 07.02.2015, 01:21 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 20% ±

AlexM,
спасибо огромное!!
вы меня постоянно выручаете.
 
Ответить
СообщениеAlexM,
спасибо огромное!!
вы меня постоянно выручаете.

Автор - 122334boss
Дата добавления - 07.02.2015 в 01:21
122334boss Дата: Суббота, 07.02.2015, 01:24 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 20% ±

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

Автор - 122334boss
Дата добавления - 07.02.2015 в 01:24
vikttur Дата: Суббота, 07.02.2015, 01:26 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Потому и предлагал показать пример данных.
На большом массиве тяжелая формула будет тормозитьь. Облегчить ее - только устанавливая ограничения, которые можно определить по реальным данным.

И еще. Необходимо разносить замены по столбцам? Если да, то решение может быть проще - вместо длинного текста "если в конце "МНМН" меняем на "КК"" - две ячейки с парами значений.


Сообщение отредактировал vikttur - Суббота, 07.02.2015, 01:29
 
Ответить
СообщениеПотому и предлагал показать пример данных.
На большом массиве тяжелая формула будет тормозитьь. Облегчить ее - только устанавливая ограничения, которые можно определить по реальным данным.

И еще. Необходимо разносить замены по столбцам? Если да, то решение может быть проще - вместо длинного текста "если в конце "МНМН" меняем на "КК"" - две ячейки с парами значений.

Автор - vikttur
Дата добавления - 07.02.2015 в 01:26
AlexM Дата: Суббота, 07.02.2015, 01:29 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Если такой же текст будет не только в конце значения, заменится и он.
формула на это замечание
Код
=ЛЕВБ(B4;ДЛСТР(B4)-МАКС((ПРАВБ(B4;СТРОКА($1:$4))=$L$2:$O$2)*СТРОКА($1:$4)))&ГПР(ПРАВБ(B4;МАКС((ПРАВБ(B4;СТРОКА($1:$4))=$L$2:$O$2)*СТРОКА($1:$4)));$L$2:$O$3;2;)
К сообщению приложен файл: 1541894_2.xls (28.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Если такой же текст будет не только в конце значения, заменится и он.
формула на это замечание
Код
=ЛЕВБ(B4;ДЛСТР(B4)-МАКС((ПРАВБ(B4;СТРОКА($1:$4))=$L$2:$O$2)*СТРОКА($1:$4)))&ГПР(ПРАВБ(B4;МАКС((ПРАВБ(B4;СТРОКА($1:$4))=$L$2:$O$2)*СТРОКА($1:$4)));$L$2:$O$3;2;)

Автор - AlexM
Дата добавления - 07.02.2015 в 01:29
122334boss Дата: Суббота, 07.02.2015, 01:40 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 20% ±

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

Автор - 122334boss
Дата добавления - 07.02.2015 в 01:40
vikttur Дата: Суббота, 07.02.2015, 01:40 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

формула на это замечание

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


Сообщение отредактировал vikttur - Суббота, 07.02.2015, 01:41
 
Ответить
Сообщение
формула на это замечание

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

Автор - vikttur
Дата добавления - 07.02.2015 в 01:40
AlexM Дата: Суббота, 07.02.2015, 01:42 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Замечание было к моей первой формуле.
В моей была та же беда. Без ПОДСТАВИТЬ() даже короче получилось.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Замечание было к моей первой формуле.
В моей была та же беда. Без ПОДСТАВИТЬ() даже короче получилось.

Автор - AlexM
Дата добавления - 07.02.2015 в 01:42
122334boss Дата: Суббота, 07.02.2015, 01:43 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 20% ±

AlexM,
спасибо попробую оба варианта.
можно вопрос: для чего нужна или что делает СТРОКА($1:$4)?
 
Ответить
СообщениеAlexM,
спасибо попробую оба варианта.
можно вопрос: для чего нужна или что делает СТРОКА($1:$4)?

Автор - 122334boss
Дата добавления - 07.02.2015 в 01:43
_Boroda_ Дата: Суббота, 07.02.2015, 01:53 | Сообщение № 16
Группа: Админы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
А если в В6 написать вот так
ывпуАППкпмапАПП
то АПП заменится дважды.
Предлагаю
Код
=ЛЕВБ(B4;ДЛСТР(B4)-ПРАВБ(МАКС((ПРАВБ(B4;ДЛСТР(K$2:N$2))=K$2:N$2)*(СТОЛБЕЦ(A:D)*10+ДЛСТР(K$2:N$2)))))&ИНДЕКС(K$3:N$3;МАКС((ПРАВБ(B4;ДЛСТР(K$2:N$2))=K$2:N$2)*СТОЛБЕЦ(A:D)))


Добавлено
Пока я думал, уже заметили, что двойное значение меняется

Симбиоз 2-х формул (Алексея и моей) в файле _3. Вроде самая короткая получилась.
Код
=ЛЕВБ(B4;ДЛСТР(B4)-МАКС((ПРАВБ(B4;СТРОКА($1:$4))=$K$2:$N$2)*СТРОКА($1:$4)))&ИНДЕКС(K$3:N$3;МАКС((ПРАВБ(B4;ДЛСТР(K$2:N$2))=K$2:N$2)*СТОЛБЕЦ(A:D)))
К сообщению приложен файл: 4592175.xls (28.0 Kb) · 1541894_3.xls (30.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА если в В6 написать вот так
ывпуАППкпмапАПП
то АПП заменится дважды.
Предлагаю
Код
=ЛЕВБ(B4;ДЛСТР(B4)-ПРАВБ(МАКС((ПРАВБ(B4;ДЛСТР(K$2:N$2))=K$2:N$2)*(СТОЛБЕЦ(A:D)*10+ДЛСТР(K$2:N$2)))))&ИНДЕКС(K$3:N$3;МАКС((ПРАВБ(B4;ДЛСТР(K$2:N$2))=K$2:N$2)*СТОЛБЕЦ(A:D)))


Добавлено
Пока я думал, уже заметили, что двойное значение меняется

Симбиоз 2-х формул (Алексея и моей) в файле _3. Вроде самая короткая получилась.
Код
=ЛЕВБ(B4;ДЛСТР(B4)-МАКС((ПРАВБ(B4;СТРОКА($1:$4))=$K$2:$N$2)*СТРОКА($1:$4)))&ИНДЕКС(K$3:N$3;МАКС((ПРАВБ(B4;ДЛСТР(K$2:N$2))=K$2:N$2)*СТОЛБЕЦ(A:D)))

Автор - _Boroda_
Дата добавления - 07.02.2015 в 01:53
122334boss Дата: Суббота, 07.02.2015, 02:08 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 20% ±

AlexM,
спасибо
 
Ответить
СообщениеAlexM,
спасибо

Автор - 122334boss
Дата добавления - 07.02.2015 в 02:08
122334boss Дата: Суббота, 07.02.2015, 02:12 | Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 20% ±

_Boroda_,
спасибо огромное.
ваше наблюдение очень существенное.
 
Ответить
Сообщение_Boroda_,
спасибо огромное.
ваше наблюдение очень существенное.

Автор - 122334boss
Дата добавления - 07.02.2015 в 02:12
122334boss Дата: Суббота, 07.02.2015, 02:16 | Сообщение № 19
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 20% ±

_Boroda_,
кстати ради эксперимента, заменил МНМН на 1212 формула работает не корректно...
но если МНМН на 121Н все отлично...
 
Ответить
Сообщение_Boroda_,
кстати ради эксперимента, заменил МНМН на 1212 формула работает не корректно...
но если МНМН на 121Н все отлично...

Автор - 122334boss
Дата добавления - 07.02.2015 в 02:16
_Boroda_ Дата: Суббота, 07.02.2015, 02:39 | Сообщение № 20
Группа: Админы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
а если вариантов сочетаний символов по 4, 3, 2 и 1 будет больше чем по одному? Мне кажется ИНДЕКС() не "справится".

Например?
В МАКСе под ИНДЕКСом ведь не количество символов, а номер позиции стоит
К сообщению приложен файл: 1541894_4.xls (30.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
а если вариантов сочетаний символов по 4, 3, 2 и 1 будет больше чем по одному? Мне кажется ИНДЕКС() не "справится".

Например?
В МАКСе под ИНДЕКСом ведь не количество символов, а номер позиции стоит

Автор - _Boroda_
Дата добавления - 07.02.2015 в 02:39
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!