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

Вход

Регистрация

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

 

= Мир MS Excel/Как из строки, заполненной датами и номерами, удалить номера - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Как из строки, заполненной датами и номерами, удалить номера
Pom123 Дата: Суббота, 09.08.2014, 11:21 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Уважаемые форумчане! Мое Вам почтение.

Мой вопрос таков:
У меня на входе ячейка с номерами и датами. Вид она имеет такой:
1-2534552 от 01.01.2000, 2-2534552 от 03.05.2001, 3-2534552 от 14.06.2005 и т.д. может быть до 25 фрагментов.

А мне надо, чтобы в результате в ячейке остались только даты через запятую, а вся информация типа "1-2534552 от" удалилась. :'(

Помогите пожалуйста. Я новичок в Экселе, и если еще разжуете - буду оч. признателен. hands
К сообщению приложен файл: __.xls (27.0 Kb)
 
Ответить
СообщениеУважаемые форумчане! Мое Вам почтение.

Мой вопрос таков:
У меня на входе ячейка с номерами и датами. Вид она имеет такой:
1-2534552 от 01.01.2000, 2-2534552 от 03.05.2001, 3-2534552 от 14.06.2005 и т.д. может быть до 25 фрагментов.

А мне надо, чтобы в результате в ячейке остались только даты через запятую, а вся информация типа "1-2534552 от" удалилась. :'(

Помогите пожалуйста. Я новичок в Экселе, и если еще разжуете - буду оч. признателен. hands

Автор - Pom123
Дата добавления - 09.08.2014 в 11:21
Gustav Дата: Суббота, 09.08.2014, 12:52 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2844
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Мой ответ - не совсем для новичка, но работает. Я традиционно в подобных случаях предлагаю UDF с использованием регулярных выражений:
[vba]
Код
Function ОСТАВИТЬТОЛЬКОДАТЫ(myString As String)
          
     Dim objRegExp   As Object
     Dim objMatch    As Object
     Dim colMatches  As Object
     Dim RetStr      As String
     Dim val2replace As String
          
     RetStr = Replace(Replace("," & myString, "от", "_"), " ", "")
          
     Set objRegExp = CreateObject("VBScript.RegExp")
          
     With objRegExp
         .Global = True
         .IgnoreCase = True
         .MultiLine = True
         .Pattern = ",([^\_]*)_"
     End With
      
     Set colMatches = objRegExp.Execute(RetStr)
          
     For Each objMatch In colMatches
         val2replace = objMatch.SubMatches(0) & "_"
         RetStr = Replace(RetStr, val2replace, "")
     Next
     RetStr = Replace(Replace(RetStr, ",", "", 1, 1), ",", ", ")
          
     ОСТАВИТЬТОЛЬКОДАТЫ = RetStr
End Function
[/vba]
К сообщению приложен файл: Pom123udf.xls (44.0 Kb)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеМой ответ - не совсем для новичка, но работает. Я традиционно в подобных случаях предлагаю UDF с использованием регулярных выражений:
[vba]
Код
Function ОСТАВИТЬТОЛЬКОДАТЫ(myString As String)
          
     Dim objRegExp   As Object
     Dim objMatch    As Object
     Dim colMatches  As Object
     Dim RetStr      As String
     Dim val2replace As String
          
     RetStr = Replace(Replace("," & myString, "от", "_"), " ", "")
          
     Set objRegExp = CreateObject("VBScript.RegExp")
          
     With objRegExp
         .Global = True
         .IgnoreCase = True
         .MultiLine = True
         .Pattern = ",([^\_]*)_"
     End With
      
     Set colMatches = objRegExp.Execute(RetStr)
          
     For Each objMatch In colMatches
         val2replace = objMatch.SubMatches(0) & "_"
         RetStr = Replace(RetStr, val2replace, "")
     Next
     RetStr = Replace(Replace(RetStr, ",", "", 1, 1), ",", ", ")
          
     ОСТАВИТЬТОЛЬКОДАТЫ = RetStr
End Function
[/vba]

Автор - Gustav
Дата добавления - 09.08.2014 в 12:52
ikki Дата: Суббота, 09.08.2014, 13:04 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
ещё вариантик на регулярках [vba]
Код
Function f(s)
     Dim r As Object
     If r Is Nothing Then Set r = CreateObject("vbscript.regexp"): r.Global = True: r.Pattern = "(,|^).*?от "
     f = Mid(r.Replace(s, ", "), 3)
End Function
[/vba]


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Суббота, 09.08.2014, 13:05
 
Ответить
Сообщениеещё вариантик на регулярках [vba]
Код
Function f(s)
     Dim r As Object
     If r Is Nothing Then Set r = CreateObject("vbscript.regexp"): r.Global = True: r.Pattern = "(,|^).*?от "
     f = Mid(r.Replace(s, ", "), 3)
End Function
[/vba]

Автор - ikki
Дата добавления - 09.08.2014 в 13:04
Pom123 Дата: Суббота, 09.08.2014, 13:11 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Gustav, СПАСИБО!!! Все работает прекрасно!
Я, увы, в силу своего невежества не могу понять Ваш код, а также, что такое UDF и регулярные выражения. Но уверен, все это очень красиво и эффективно написано.

Еще раз благодарю. hands hands hands
 
Ответить
СообщениеGustav, СПАСИБО!!! Все работает прекрасно!
Я, увы, в силу своего невежества не могу понять Ваш код, а также, что такое UDF и регулярные выражения. Но уверен, все это очень красиво и эффективно написано.

Еще раз благодарю. hands hands hands

Автор - Pom123
Дата добавления - 09.08.2014 в 13:11
Pom123 Дата: Суббота, 09.08.2014, 13:14 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
ikki, Вам тоже спасибо! Как интегрировать Ваш код к Эксель и запустить его?
 
Ответить
Сообщениеikki, Вам тоже спасибо! Как интегрировать Ваш код к Эксель и запустить его?

Автор - Pom123
Дата добавления - 09.08.2014 в 13:14
gling Дата: Суббота, 09.08.2014, 13:40 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2643
Репутация: 739 ±
Замечаний: 0% ±

2010
Можно через Ctrl+H найти "????????????????от " заменить на пусто. Правда это в том случае если количество знаков, которые требуется убрать, всегда постоянно и вместе с "от " и пробелом составляет 19. Можно искать ",*от " и менять на ", " но для первой даты это не подходит.


ЯД-41001506838083

Сообщение отредактировал gling - Суббота, 09.08.2014, 13:45
 
Ответить
СообщениеМожно через Ctrl+H найти "????????????????от " заменить на пусто. Правда это в том случае если количество знаков, которые требуется убрать, всегда постоянно и вместе с "от " и пробелом составляет 19. Можно искать ",*от " и менять на ", " но для первой даты это не подходит.

Автор - gling
Дата добавления - 09.08.2014 в 13:40
ikki Дата: Суббота, 09.08.2014, 13:49 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
К сообщению приложен файл: re.xls (36.0 Kb)


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Суббота, 09.08.2014, 14:01
 
Ответить
Сообщение
Как интегрировать
http://www.planetaexcel.ru/techniques/3/59/

Автор - ikki
Дата добавления - 09.08.2014 в 13:49
Gustav Дата: Суббота, 09.08.2014, 16:05 | Сообщение № 8
Группа: Админы
Ранг: Участник клуба
Сообщений: 2844
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
ещё вариантик на регулярках

ikki, браво! :)

что такое UDF и регулярные выражения

Pom123,
про UDF в Excel - http://www.excel-vba.ru/chto-um....elyaudf
а про регулярные - погуглите, это однозначное понятие


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
ещё вариантик на регулярках

ikki, браво! :)

что такое UDF и регулярные выражения

Pom123,
про UDF в Excel - http://www.excel-vba.ru/chto-um....elyaudf
а про регулярные - погуглите, это однозначное понятие

Автор - Gustav
Дата добавления - 09.08.2014 в 16:05
Pom123 Дата: Суббота, 09.08.2014, 18:59 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
ikki, Gustav, Большое спасибо! Буду учиться! yahoo


Сообщение отредактировал Pom123 - Суббота, 09.08.2014, 19:09
 
Ответить
Сообщениеikki, Gustav, Большое спасибо! Буду учиться! yahoo

Автор - Pom123
Дата добавления - 09.08.2014 в 18:59
  • Страница 1 из 1
  • 1
Поиск:

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