Замена окончания в текстовых значениях
122334boss
Дата: Суббота, 07.02.2015, 00:32 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Доброй ночи. Подскажите, как можно прописать формулу для замены окончаний в текстовых значениях по заданным критериям. Критерии замены будут постоянно меняться. Например если слово оканчивается на ""КН" - ПРОЛДКН заменить "КН" на "ЦГШ" получим ПРОЛДЦГШ. Пример прикреплен. Заранее благодарен.
Доброй ночи. Подскажите, как можно прописать формулу для замены окончаний в текстовых значениях по заданным критериям. Критерии замены будут постоянно меняться. Например если слово оканчивается на ""КН" - ПРОЛДКН заменить "КН" на "ЦГШ" получим ПРОЛДЦГШ. Пример прикреплен. Заранее благодарен. 122334boss
Ответить
Сообщение Доброй ночи. Подскажите, как можно прописать формулу для замены окончаний в текстовых значениях по заданным критериям. Критерии замены будут постоянно меняться. Например если слово оканчивается на ""КН" - ПРОЛДКН заменить "КН" на "ЦГШ" получим ПРОЛДЦГШ. Пример прикреплен. Заранее благодарен. Автор - 122334boss Дата добавления - 07.02.2015 в 00:32
vikttur
Дата: Суббота, 07.02.2015, 00:37 |
Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Это же отвлеченный набор букв, не такой, как в реальности. Реальные показать нет возможности? Только 4 вида замен?длина заменяемых и подставляемых тоже может иметь значение. Какой объем данных для таких замен? Если что-то обще-непонятное: таблица соответствий замен и макросом пробегать по ячейкам.
Это же отвлеченный набор букв, не такой, как в реальности. Реальные показать нет возможности? Только 4 вида замен?длина заменяемых и подставляемых тоже может иметь значение. Какой объем данных для таких замен? Если что-то обще-непонятное: таблица соответствий замен и макросом пробегать по ячейкам. vikttur
Сообщение отредактировал vikttur - Суббота, 07.02.2015, 00:53
Ответить
Сообщение Это же отвлеченный набор букв, не такой, как в реальности. Реальные показать нет возможности? Только 4 вида замен?длина заменяемых и подставляемых тоже может иметь значение. Какой объем данных для таких замен? Если что-то обще-непонятное: таблица соответствий замен и макросом пробегать по ячейкам. Автор - vikttur Дата добавления - 07.02.2015 в 00:37
122334boss
Дата: Суббота, 07.02.2015, 00:52 |
Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
vikttur, Это будут замены артикулов, сколько знаков нужно поменять на какие еще нет данных. Знаю одно, что замены будут не одинаковые по кол-ву знаков. Вот поэтому я сейчас уточняю, какие есть возможности для реализации задания.
vikttur, Это будут замены артикулов, сколько знаков нужно поменять на какие еще нет данных. Знаю одно, что замены будут не одинаковые по кол-ву знаков. Вот поэтому я сейчас уточняю, какие есть возможности для реализации задания. 122334boss
Ответить
Сообщение vikttur, Это будут замены артикулов, сколько знаков нужно поменять на какие еще нет данных. Знаю одно, что замены будут не одинаковые по кол-ву знаков. Вот поэтому я сейчас уточняю, какие есть возможности для реализации задания. Автор - 122334boss Дата добавления - 07.02.2015 в 00:52
122334boss
Дата: Суббота, 07.02.2015, 00:53 |
Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
vikttur, если есть возможность задавать длину на замену и длину замены, буду признателен.
vikttur, если есть возможность задавать длину на замену и длину замены, буду признателен. 122334boss
Ответить
Сообщение vikttur, если есть возможность задавать длину на замену и длину замены, буду признателен. Автор - 122334boss Дата добавления - 07.02.2015 в 00:53
vikttur
Дата: Суббота, 07.02.2015, 00:54 |
Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Все-таки покажите пример, приближенный к реальным данным.
Все-таки покажите пример, приближенный к реальным данным. vikttur
Ответить
Сообщение Все-таки покажите пример, приближенный к реальным данным. Автор - vikttur Дата добавления - 07.02.2015 в 00:54
122334boss
Дата: Суббота, 07.02.2015, 01:10 |
Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
vikttur, Давай те предположим, что нужно заменить 2 знака, на 3 знака. Есть формула, которая это делает. Если нужно например заменить 1 знак , на 2 знака я смогу самостоятельно изменить формулу, чтобы выполнялось условие? Или под каждую отдельную замену нужно писать новую формулу?
vikttur, Давай те предположим, что нужно заменить 2 знака, на 3 знака. Есть формула, которая это делает. Если нужно например заменить 1 знак , на 2 знака я смогу самостоятельно изменить формулу, чтобы выполнялось условие? Или под каждую отдельную замену нужно писать новую формулу? 122334boss
Ответить
Сообщение vikttur, Давай те предположим, что нужно заменить 2 знака, на 3 знака. Есть формула, которая это делает. Если нужно например заменить 1 знак , на 2 знака я смогу самостоятельно изменить формулу, чтобы выполнялось условие? Или под каждую отдельную замену нужно писать новую формулу? Автор - 122334boss Дата добавления - 07.02.2015 в 01:10
vikttur
Дата: Суббота, 07.02.2015, 01:16 |
Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Код
=ПОДСТАВИТЬ(A1;ПРАВБ(A1;3);С15)
Заменит в значении из ячейки А1 три правых символа на значение ячейки С15 Если такой же текст будет не только в конце значения, заменится и он. В таком случае может помочь Код
=ЛЕВБ(A1;ДЛСТР(A1)-3)&С15
Код
=ПОДСТАВИТЬ(A1;ПРАВБ(A1;3);С15)
Заменит в значении из ячейки А1 три правых символа на значение ячейки С15 Если такой же текст будет не только в конце значения, заменится и он. В таком случае может помочь Код
=ЛЕВБ(A1;ДЛСТР(A1)-3)&С15
vikttur
Сообщение отредактировал 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
AlexM, спасибо огромное!! вы меня постоянно выручаете.
AlexM, спасибо огромное!! вы меня постоянно выручаете. 122334boss
Ответить
Сообщение AlexM, спасибо огромное!! вы меня постоянно выручаете. Автор - 122334boss Дата добавления - 07.02.2015 в 01:21
122334boss
Дата: Суббота, 07.02.2015, 01:24 |
Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
vikttur, спасибо огромное, не совсем то... т.к. будет большой массив данных, и не все значения нужно менять, ваша формула немного не подходит...
vikttur, спасибо огромное, не совсем то... т.к. будет большой массив данных, и не все значения нужно менять, ваша формула немного не подходит... 122334boss
Ответить
Сообщение vikttur, спасибо огромное, не совсем то... т.к. будет большой массив данных, и не все значения нужно менять, ваша формула немного не подходит... Автор - 122334boss Дата добавления - 07.02.2015 в 01:24
vikttur
Дата: Суббота, 07.02.2015, 01:26 |
Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Потому и предлагал показать пример данных. На большом массиве тяжелая формула будет тормозитьь. Облегчить ее - только устанавливая ограничения, которые можно определить по реальным данным. И еще. Необходимо разносить замены по столбцам? Если да, то решение может быть проще - вместо длинного текста "если в конце "МНМН" меняем на "КК" " - две ячейки с парами значений.
Потому и предлагал показать пример данных. На большом массиве тяжелая формула будет тормозитьь. Облегчить ее - только устанавливая ограничения, которые можно определить по реальным данным. И еще. Необходимо разносить замены по столбцам? Если да, то решение может быть проще - вместо длинного текста "если в конце "МНМН" меняем на "КК" " - две ячейки с парами значений. vikttur
Сообщение отредактировал 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;)
Если такой же текст будет не только в конце значения, заменится и он.
формула на это замечаниеКод
=ЛЕВБ(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
Номер мобильного модема (без голосовой связи) 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
vikttur, ваша формула простая, но нужно будет дополнительно выносить значения в отдельный столбик для замены... когда будут реальные данные для замены я попробую и ваш вариант...
vikttur, ваша формула простая, но нужно будет дополнительно выносить значения в отдельный столбик для замены... когда будут реальные данные для замены я попробую и ваш вариант... 122334boss
Ответить
Сообщение vikttur, ваша формула простая, но нужно будет дополнительно выносить значения в отдельный столбик для замены... когда будут реальные данные для замены я попробую и ваш вариант... Автор - 122334boss Дата добавления - 07.02.2015 в 01:40
vikttur
Дата: Суббота, 07.02.2015, 01:40 |
Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Замечание было к моей первой формуле. а не стал рисовать чего-то получше, потому что при таких данных решение может оказаться частичным. Или излишне сложным.
Замечание было к моей первой формуле. а не стал рисовать чего-то получше, потому что при таких данных решение может оказаться частичным. Или излишне сложным. vikttur
Сообщение отредактировал vikttur - Суббота, 07.02.2015, 01:41
Ответить
Сообщение Замечание было к моей первой формуле. а не стал рисовать чего-то получше, потому что при таких данных решение может оказаться частичным. Или излишне сложным. Автор - vikttur Дата добавления - 07.02.2015 в 01:40
AlexM
Дата: Суббота, 07.02.2015, 01:42 |
Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1129
±
Замечаний:
0% ±
Excel 2003
Замечание было к моей первой формуле.
В моей была та же беда. Без ПОДСТАВИТЬ() даже короче получилось.
Замечание было к моей первой формуле.
В моей была та же беда. Без ПОДСТАВИТЬ() даже короче получилось.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Сообщение Замечание было к моей первой формуле.
В моей была та же беда. Без ПОДСТАВИТЬ() даже короче получилось.Автор - AlexM Дата добавления - 07.02.2015 в 01:42
122334boss
Дата: Суббота, 07.02.2015, 01:43 |
Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
AlexM, спасибо попробую оба варианта. можно вопрос: для чего нужна или что делает СТРОКА($1:$4)?
AlexM, спасибо попробую оба варианта. можно вопрос: для чего нужна или что делает СТРОКА($1:$4)? 122334boss
Ответить
Сообщение AlexM, спасибо попробую оба варианта. можно вопрос: для чего нужна или что делает СТРОКА($1:$4)? Автор - 122334boss Дата добавления - 07.02.2015 в 01:43
_Boroda_
Дата: Суббота, 07.02.2015, 01:53 |
Сообщение № 16
Группа: Админы
Ранг: Местный житель
Сообщений: 16711
Репутация:
6502
±
Замечаний:
±
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)))
А если в В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_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: 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
AlexM, спасибо
Ответить
Сообщение AlexM, спасибо Автор - 122334boss Дата добавления - 07.02.2015 в 02:08
122334boss
Дата: Суббота, 07.02.2015, 02:12 |
Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
_Boroda_, спасибо огромное. ваше наблюдение очень существенное.
_Boroda_, спасибо огромное. ваше наблюдение очень существенное. 122334boss
Ответить
Сообщение _Boroda_, спасибо огромное. ваше наблюдение очень существенное. Автор - 122334boss Дата добавления - 07.02.2015 в 02:12
122334boss
Дата: Суббота, 07.02.2015, 02:16 |
Сообщение № 19
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
_Boroda_, кстати ради эксперимента, заменил МНМН на 1212 формула работает не корректно... но если МНМН на 121Н все отлично...
_Boroda_, кстати ради эксперимента, заменил МНМН на 1212 формула работает не корректно... но если МНМН на 121Н все отлично... 122334boss
Ответить
Сообщение _Boroda_, кстати ради эксперимента, заменил МНМН на 1212 формула работает не корректно... но если МНМН на 121Н все отлично... Автор - 122334boss Дата добавления - 07.02.2015 в 02:16
_Boroda_
Дата: Суббота, 07.02.2015, 02:39 |
Сообщение № 20
Группа: Админы
Ранг: Местный житель
Сообщений: 16711
Репутация:
6502
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
а если вариантов сочетаний символов по 4, 3, 2 и 1 будет больше чем по одному? Мне кажется ИНДЕКС() не "справится".
Например? В МАКСе под ИНДЕКСом ведь не количество символов, а номер позиции стоит
а если вариантов сочетаний символов по 4, 3, 2 и 1 будет больше чем по одному? Мне кажется ИНДЕКС() не "справится".
Например? В МАКСе под ИНДЕКСом ведь не количество символов, а номер позиции стоит_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение а если вариантов сочетаний символов по 4, 3, 2 и 1 будет больше чем по одному? Мне кажется ИНДЕКС() не "справится".
Например? В МАКСе под ИНДЕКСом ведь не количество символов, а номер позиции стоитАвтор - _Boroda_ Дата добавления - 07.02.2015 в 02:39