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

Вход

Регистрация

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

 

= Мир MS Excel/Удаление в ячейке по условию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Удаление в ячейке по условию
BobbyJo Дата: Понедельник, 09.09.2013, 19:39 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
Добрый вечер!

Пример исходных данных:
Disco-347-09-vide
или
Duke-353-24-framboises

Нужно получить на выходе только артикул 347-09
Задача: удалить всё до первой цифры и после последней цифры в ячейке

Подскажите, какую формулу применить ? вообще - как сделать ? )
К сообщению приложен файл: 1834239.xlsm (17.3 Kb)


Сообщение отредактировал BobbyJo - Понедельник, 09.09.2013, 20:02
 
Ответить
СообщениеДобрый вечер!

Пример исходных данных:
Disco-347-09-vide
или
Duke-353-24-framboises

Нужно получить на выходе только артикул 347-09
Задача: удалить всё до первой цифры и после последней цифры в ячейке

Подскажите, какую формулу применить ? вообще - как сделать ? )

Автор - BobbyJo
Дата добавления - 09.09.2013 в 19:39
KuklP Дата: Понедельник, 09.09.2013, 20:59 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеКросс:
http://planetaexcel.ru/forum....e423720

Автор - KuklP
Дата добавления - 09.09.2013 в 20:59
AlexM Дата: Понедельник, 09.09.2013, 21:26 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Функция
[vba]
Код
Function RetrieveNumbers(myString As String) As String
Set objRegExp = CreateObject("VBScript.RegExp")
objRegExp.Pattern = "\d{3}-\d{2}"
objRegExp.IgnoreCase = True
If objRegExp.Test(myString) Then
     RetrieveNumbers = objRegExp.Execute(myString).Item(0)
Else
     RetrieveNumbers = "-"
End If
End Function
[/vba]
К сообщению приложен файл: 1834239_new.xls (54.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеФункция
[vba]
Код
Function RetrieveNumbers(myString As String) As String
Set objRegExp = CreateObject("VBScript.RegExp")
objRegExp.Pattern = "\d{3}-\d{2}"
objRegExp.IgnoreCase = True
If objRegExp.Test(myString) Then
     RetrieveNumbers = objRegExp.Execute(myString).Item(0)
Else
     RetrieveNumbers = "-"
End If
End Function
[/vba]

Автор - AlexM
Дата добавления - 09.09.2013 в 21:26
BobbyJo Дата: Понедельник, 09.09.2013, 21:27 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
Задача решена:

[vba]
Код
Function RetrieveNumbers(myString As String)
Dim i As Integer, j As Integer
Dim OnlyNums As String
For i = Len(myString) To 1 Step -1
If IsNumeric(Mid(myString, i, 1)) Then
j = j + 1
OnlyNums = Mid(myString, i, 1) & OnlyNums
End If
Next i
If Len(OnlyNums) = 5 Then
OnlyNums = Left(OnlyNums, 3) & "-" & Right(OnlyNums, 2)
Else
OnlyNums = Left(OnlyNums, 4) & "-" & Right(OnlyNums, 2)
End If
RetrieveNumbers = OnlyNums
End Function
[/vba]

Задача решена. Подсказали решение. В моем случае почти работает. В остальных где числа более длинные не уверен что будет работать.
 
Ответить
СообщениеЗадача решена:

[vba]
Код
Function RetrieveNumbers(myString As String)
Dim i As Integer, j As Integer
Dim OnlyNums As String
For i = Len(myString) To 1 Step -1
If IsNumeric(Mid(myString, i, 1)) Then
j = j + 1
OnlyNums = Mid(myString, i, 1) & OnlyNums
End If
Next i
If Len(OnlyNums) = 5 Then
OnlyNums = Left(OnlyNums, 3) & "-" & Right(OnlyNums, 2)
Else
OnlyNums = Left(OnlyNums, 4) & "-" & Right(OnlyNums, 2)
End If
RetrieveNumbers = OnlyNums
End Function
[/vba]

Задача решена. Подсказали решение. В моем случае почти работает. В остальных где числа более длинные не уверен что будет работать.

Автор - BobbyJo
Дата добавления - 09.09.2013 в 21:27
BobbyJo Дата: Понедельник, 09.09.2013, 21:30 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
Уважаемый AlexM. Ваш вариант чем то лучше, но там где 4 цифры удаляет первую:
"Durobor_Vigneron-1922-38-rouge" "922-38"
 
Ответить
СообщениеУважаемый AlexM. Ваш вариант чем то лучше, но там где 4 цифры удаляет первую:
"Durobor_Vigneron-1922-38-rouge" "922-38"

Автор - BobbyJo
Дата добавления - 09.09.2013 в 21:30
AlexM Дата: Понедельник, 09.09.2013, 21:36 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Вы же в первом сообщении только три просили.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеВы же в первом сообщении только три просили.

Автор - AlexM
Дата добавления - 09.09.2013 в 21:36
BobbyJo Дата: Понедельник, 09.09.2013, 21:40 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
там просто 2 примера. Извиняюсь надо было более разные примеры привести. в файле, в конце списка, можете увидеть что есть и ХХХХ-ХХ
"Durobor_Vigneron-1922-38-rouge"
 
Ответить
Сообщениетам просто 2 примера. Извиняюсь надо было более разные примеры привести. в файле, в конце списка, можете увидеть что есть и ХХХХ-ХХ
"Durobor_Vigneron-1922-38-rouge"

Автор - BobbyJo
Дата добавления - 09.09.2013 в 21:40
AlexM Дата: Понедельник, 09.09.2013, 21:41 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Замените в функции третью строку на
[vba]
Код
objRegExp.Pattern = "\d{3,4}-\d{2}"
[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеЗамените в функции третью строку на
[vba]
Код
objRegExp.Pattern = "\d{3,4}-\d{2}"
[/vba]

Автор - AlexM
Дата добавления - 09.09.2013 в 21:41
BobbyJo Дата: Понедельник, 09.09.2013, 21:57 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
Ура, работает! Спасибо! Пользуясь возможностью спрошу еще: А если например у меня будет не ХХХХ-ХХ артикул, а ХХХ-ХХХХ или ХХХХХ-ХХ. Что я должен буду менять в этой строке?
 
Ответить
СообщениеУра, работает! Спасибо! Пользуясь возможностью спрошу еще: А если например у меня будет не ХХХХ-ХХ артикул, а ХХХ-ХХХХ или ХХХХХ-ХХ. Что я должен буду менять в этой строке?

Автор - BobbyJo
Дата добавления - 09.09.2013 в 21:57
AlexM Дата: Понедельник, 09.09.2013, 22:02 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
значения в фигурных скобках. Первое число ОТ, а второе ДО. Но надо проверять.
[vba]
Код
objRegExp.Pattern = "\d{3,5}-\d{2,4}"
[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщениезначения в фигурных скобках. Первое число ОТ, а второе ДО. Но надо проверять.
[vba]
Код
objRegExp.Pattern = "\d{3,5}-\d{2,4}"
[/vba]

Автор - AlexM
Дата добавления - 09.09.2013 в 22:02
BobbyJo Дата: Понедельник, 09.09.2013, 22:03 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
Спасибо!
 
Ответить
СообщениеСпасибо!

Автор - BobbyJo
Дата добавления - 09.09.2013 в 22:03
  • Страница 1 из 1
  • 1
Поиск:

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