1) - Формула Excel
Если вы go используете маршрут Формула Excel, используйте B2
:
=MID(A2,SEARCH("??.??.20??-??.??.20??",A2),21)
Перетащите вниз ...
Функция SEARCH
поддерживает символы подстановки, такие как ?
(что обозначает любой символ), и, таким образом, возвращает начальную позицию интересующей подстроки. При использовании в MID
мы можем фактически извлечь эту подстроку.
2) - VBA
Согласно моему комментарию выше, это также можно сделать с помощью регулярных выражений (см. ссылку, предоставленную @Warcupine). Регулярные выражения позволяют вам быть более точным в вашем шаблоне (например, мы можем искать цифры вместо любого символа).
Я могу представить, что вы использовали бы UDF, где вы можете ссылаться как на текст, так и на ваш действительный шаблон Например:
Public Function RegExtract(Txt As String, Pattern As String) As String
With CreateObject("vbscript.regexp")
'.Global = True
.Pattern = Pattern
If .test(Txt) Then
RegExtract = .Execute(Txt)(0)
Else
RegExtract = "No match found"
End If
End With
End Function
Вы можете назвать это в B2
через =RegExtract(A2,"\d\d\.\d\d\.20\d\d-\d\d\.\d\d\.20\d\d")
Как вы можете видеть, картина довольно проста:
Результаты:
![enter image description here](https://i.stack.imgur.com/MkhEj.png)