Страницы: 1
RSS
Перебор справа налево, Отрезать кусок текста в ячейке после последней точки в ячейке
 
Нужно из списков литературы множества статей выудить отдельно названия и, еще, авторов статей.
У многих статей формат списка литературы одинаковый: 4. Бродецкий Г.Л., Гусев Д.А. Феномен неадекватного выбора при оптимизации закупок в цепях поставок по многим критериям // Логистика сегодня. — 2010. — No2.
Название с автором легко отсекается по слешу.
Но как в отдельные ячейки вынести авторов и название. Никак не получается отсечь название по последней точке в ячейке (когда уже остались только авторы и название).
В файле прикреплены мои потуги: первый стобец - это сырой материал, а именно что вставляется после банального копирования, а второй уже только автор и название. Все остальные - неудачные эксперименты.
Изменено: dantosnick - 17.04.2016 20:49:21
 
Цитата
Название с автором легко отсекается по слешу
Затем ищете точку с конца строки (в столбце В) и разделяете автора и название
Код
Sub Nazvanie()
Dim i As Long
Dim n As Integer
  For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
   n = InStrRev(Cells(i, 2), ".")
   Cells(i, 3) = Mid(Cells(i, 2), 1, n)
   Cells(i, 4) = Mid(Cells(i, 2), n + 2, Len(Cells(i, 2)) - n)
  Next
End Sub
 
Видел как-то давно подобный вопрос, порылся у себя в архивах ))
смотрите столбцы (E,F). Логика построена на последней точке, если вдруг получится название содержащее в себе точку, будет крах логики )))
 
Копируете весь столбец, ctrl+h найти *. - заменить на пусто.
Я сам - дурнее всякого примера! ...
 
добрый день,только прочитал Вашу тему,вариант использования функций: uuu1 в B1 и uuu2 в C1 в прилагаемом файл-примере
 
Код
Function uuu1$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "^(.+)\.(.+)": .Global = True
    uuu1 = .Execute(t)(.Execute(t).Count - 1).Submatches(0)
 End With
End Function
Код
Function uuu2$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "^(.+)\.(.+)": .Global = True
    uuu2 = .Execute(t)(.Execute(t).Count - 1).Submatches(1)
 End With
End Function
Изменено: sv2013 - 18.04.2016 13:51:48
 
Спасибо всем огромное, воспользовался макросом кузьмича.
 
Вот получился большой макрос (по моим меркам)
Страницы: 1
Наверх