Удаление части названия на русском языке
blueberry
Дата: Пятница, 30.01.2015, 11:58 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Добрый день. Прошу помощи в следующем вопросе: Есть перечень номенклатуры, названия которой некорректно указаны. Например: Pioneer SE-MJ522-R наушники Пионер LG GA-B379SLQA Холодильник Эл Джи Samsung AQ24EWFXSER Кондиционер внешний блок и т.д. На выходе нужно получить: Pioneer SE-MJ522-R LG GA-B379SLQA Samsung AQ24EWFXSER Подскажите, пожалуйста, как это сделать? Есть тема с похожим вопросом, но как применить в моем случае - не пойму. http://www.excelworld.ru/forum/2-9477-1
Добрый день. Прошу помощи в следующем вопросе: Есть перечень номенклатуры, названия которой некорректно указаны. Например: Pioneer SE-MJ522-R наушники Пионер LG GA-B379SLQA Холодильник Эл Джи Samsung AQ24EWFXSER Кондиционер внешний блок и т.д. На выходе нужно получить: Pioneer SE-MJ522-R LG GA-B379SLQA Samsung AQ24EWFXSER Подскажите, пожалуйста, как это сделать? Есть тема с похожим вопросом, но как применить в моем случае - не пойму. http://www.excelworld.ru/forum/2-9477-1 blueberry
Ответить
Сообщение Добрый день. Прошу помощи в следующем вопросе: Есть перечень номенклатуры, названия которой некорректно указаны. Например: Pioneer SE-MJ522-R наушники Пионер LG GA-B379SLQA Холодильник Эл Джи Samsung AQ24EWFXSER Кондиционер внешний блок и т.д. На выходе нужно получить: Pioneer SE-MJ522-R LG GA-B379SLQA Samsung AQ24EWFXSER Подскажите, пожалуйста, как это сделать? Есть тема с похожим вопросом, но как применить в моем случае - не пойму. http://www.excelworld.ru/forum/2-9477-1 Автор - blueberry Дата добавления - 30.01.2015 в 11:58
DJ_Marker_MC
Дата: Пятница, 30.01.2015, 12:15 |
Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация:
213
±
Замечаний:
0% ±
Excel 2019
Добрый день. Как вариант использовать UDF, но все равно немножко нужно будет руками поправлять. это в модуль [vba]Код
Function DelRuText(Stxt$) For i = Len(Stxt) To 1 Step -1 a = Mid(Stxt, i, 1) If a Like "[А-я]" Then Stxt = Replace(Stxt, a, "") Next DelRuText = Stxt End Function
[/vba] Это в ячейку B2 Код
=СЖПРОБЕЛЫ(DelRuText(A2))
Добрый день. Как вариант использовать UDF, но все равно немножко нужно будет руками поправлять. это в модуль [vba]Код
Function DelRuText(Stxt$) For i = Len(Stxt) To 1 Step -1 a = Mid(Stxt, i, 1) If a Like "[А-я]" Then Stxt = Replace(Stxt, a, "") Next DelRuText = Stxt End Function
[/vba] Это в ячейку B2 Код
=СЖПРОБЕЛЫ(DelRuText(A2))
DJ_Marker_MC
Ответить
Сообщение Добрый день. Как вариант использовать UDF, но все равно немножко нужно будет руками поправлять. это в модуль [vba]Код
Function DelRuText(Stxt$) For i = Len(Stxt) To 1 Step -1 a = Mid(Stxt, i, 1) If a Like "[А-я]" Then Stxt = Replace(Stxt, a, "") Next DelRuText = Stxt End Function
[/vba] Это в ячейку B2 Код
=СЖПРОБЕЛЫ(DelRuText(A2))
Автор - DJ_Marker_MC Дата добавления - 30.01.2015 в 12:15
SLAVICK
Дата: Пятница, 30.01.2015, 14:01 |
Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация:
766
±
Замечаний:
0% ±
2019
Мой вариант Он "Вырезает" из названия первый блок с Латиницей:
[vba]
Код
Function engl(Stxt$) Dim b As Boolean, i%, ii%, s$, a$ 'Блок для нахождения начала спецификации For i = 1 To Len(Stxt) a = Mid(Stxt, i, 1) b = a Like "[А-я]" If Not b Then StFind = " \|/?<>:*""" ' СИМВОЛЫ ДЛЯ ПРОВЕРКИ For ii = 1 To Len(StFind) If a = Mid(StFind, ii, 1) Then GoTo 10 Next Exit For 10 End If Next 'Блок для нахождения конца спецификации For i = i To Len(Stxt) a = Mid(Stxt, i, 1) If Not a Like "[А-я]" Then s = s & a Else Exit For Next engl = s End Function
[/vba]
Мой вариант Он "Вырезает" из названия первый блок с Латиницей:
[vba]
Код
Function engl(Stxt$) Dim b As Boolean, i%, ii%, s$, a$ 'Блок для нахождения начала спецификации For i = 1 To Len(Stxt) a = Mid(Stxt, i, 1) b = a Like "[А-я]" If Not b Then StFind = " \|/?<>:*""" ' СИМВОЛЫ ДЛЯ ПРОВЕРКИ For ii = 1 To Len(StFind) If a = Mid(StFind, ii, 1) Then GoTo 10 Next Exit For 10 End If Next 'Блок для нахождения конца спецификации For i = i To Len(Stxt) a = Mid(Stxt, i, 1) If Not a Like "[А-я]" Then s = s & a Else Exit For Next engl = s End Function
[/vba]
SLAVICK
Иногда все проще чем кажется с первого взгляда.
Ответить
Сообщение Мой вариант Он "Вырезает" из названия первый блок с Латиницей:
[vba]
Код
Function engl(Stxt$) Dim b As Boolean, i%, ii%, s$, a$ 'Блок для нахождения начала спецификации For i = 1 To Len(Stxt) a = Mid(Stxt, i, 1) b = a Like "[А-я]" If Not b Then StFind = " \|/?<>:*""" ' СИМВОЛЫ ДЛЯ ПРОВЕРКИ For ii = 1 To Len(StFind) If a = Mid(StFind, ii, 1) Then GoTo 10 Next Exit For 10 End If Next 'Блок для нахождения конца спецификации For i = i To Len(Stxt) a = Mid(Stxt, i, 1) If Not a Like "[А-я]" Then s = s & a Else Exit For Next engl = s End Function
[/vba]
Автор - SLAVICK Дата добавления - 30.01.2015 в 14:01
blueberry
Дата: Пятница, 30.01.2015, 14:15 |
Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Ребята, спасибо огромное!! Выручили. Все получилось в обоих вариантах. Спасибо!!!
Ребята, спасибо огромное!! Выручили. Все получилось в обоих вариантах. Спасибо!!! blueberry
Ответить
Сообщение Ребята, спасибо огромное!! Выручили. Все получилось в обоих вариантах. Спасибо!!! Автор - blueberry Дата добавления - 30.01.2015 в 14:15
AlexM
Дата: Пятница, 30.01.2015, 14:41 |
Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1130
±
Замечаний:
0% ±
Excel 2003
До кучи вариант формульныйКод
=СЖПРОБЕЛЫ(ЗАМЕНИТЬ(A2;ПОИСКПОЗ(1;--(ПСТР(A2;СТРОКА($1:$99);1)>="А"););ПРОСМОТР(2;1/(ПСТР(A2;СТРОКА($1:$99);1)>="А");СТРОКА($1:$99))+1-ПОИСКПОЗ(1;--(ПСТР(A2;СТРОКА($1:$99);1)>="А"););))
До кучи вариант формульныйКод
=СЖПРОБЕЛЫ(ЗАМЕНИТЬ(A2;ПОИСКПОЗ(1;--(ПСТР(A2;СТРОКА($1:$99);1)>="А"););ПРОСМОТР(2;1/(ПСТР(A2;СТРОКА($1:$99);1)>="А");СТРОКА($1:$99))+1-ПОИСКПОЗ(1;--(ПСТР(A2;СТРОКА($1:$99);1)>="А"););))
AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Сообщение отредактировал AlexM - Пятница, 30.01.2015, 14:44
Ответить
Сообщение До кучи вариант формульныйКод
=СЖПРОБЕЛЫ(ЗАМЕНИТЬ(A2;ПОИСКПОЗ(1;--(ПСТР(A2;СТРОКА($1:$99);1)>="А"););ПРОСМОТР(2;1/(ПСТР(A2;СТРОКА($1:$99);1)>="А");СТРОКА($1:$99))+1-ПОИСКПОЗ(1;--(ПСТР(A2;СТРОКА($1:$99);1)>="А"););))
Автор - AlexM Дата добавления - 30.01.2015 в 14:41
Richman
Дата: Пятница, 30.01.2015, 17:35 |
Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 346
Репутация:
54
±
Замечаний:
0% ±
Excel 2007
Как вариант с анализом каждой буквы и доп столбцами, но не массивная, Все формулы надо протянуть вниз, а то в 100кб не влазит
Как вариант с анализом каждой буквы и доп столбцами, но не массивная, Все формулы надо протянуть вниз, а то в 100кб не влазит Richman
С Уважением, Richman
Ответить
Сообщение Как вариант с анализом каждой буквы и доп столбцами, но не массивная, Все формулы надо протянуть вниз, а то в 100кб не влазит Автор - Richman Дата добавления - 30.01.2015 в 17:35