dixel, опишите словами алгоритм, по которому будет производиться вывод информации…
Например, «отступить с конца строки 5 символов (убрать ".html") и взять …»: • … 10 символов • … всё до 2го тире • … всё до первой цифры • … разделить по тире "-" и взять 2 последних блока • … другое
Сейчас мне сходу по примеру алгоритм определить не удалось
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Максим В. написал: Код ? 1=ЕСЛИОШИБКА(ПРОСМОТР(;-ПОИСК({"fx7719":"el3801-2251-w":"cj2033-002":"i028535-mao67-03"};A2);{"fx7719":"el3801-2251-w":"cj2033-002":"i028535-mao67-03"});"")
Вы в этом смысле о 4 фрагментах. Это примеры ссылок с возможными комбинациями, в файле полный список
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Jack Famous написал: Например, «отступить с конца строки 5 символов (убрать ".html") и взять …»: • … 10 символов • … всё до 2го тире • … всё до первой цифры • … разделить по тире "-" и взять 2 последних блока • … другое
Тогда можно сделать для каждого из этих примеров свою формулу? Алгоритм такой: 1) взять полседнее слово; 2) взять последних два слова; 3) взять последних три слова; В файле можно будет разделить для этого алгоритма
dixel написал: Алгоритм такой: 1) взять полседнее слово; 2) взять последних два слова; 3) взять последних три слова;
Что бы это было хотя бы похоже на первое приближение к алгоритму, необходимо определить - что такое слово в этом тексте Пока никто не смог догадаться - уже откройте секрет загадки.
Вот алгоритм для каждого примера. Если перефразировать, то: брать текст до первого символа "-" с конца брать текст до второго символа "-" с конца брать текст до третьего символа "-" с конца
Привет, тёзка. Каков критерий этой непохожести? Если выполняется это и это, то это максимальная непохожесть, а если нет, то похоже на слово. Так вот что это, Берримор, это и это?
dixel написал: Тогда можно сделать для каждого из этих примеров свою формулу?Алгоритм такой: 1) взять полседнее слово; 2) взять последних два слова; 3) взять последних три слова;В файле можно будет разделить для этого алгоритма
Непонятное описание задачи. Но, на сколько я понял, Вы хотите вручную проставлять количество слов, которое нужно оставить? Если да, то подойдет следующая формула с добавлением промежуточного столбца с указанием количества слов:
Вот алгоритм для каждого примера. Если перефразировать, то: брать текст до первого символа "-" с конца брать текст до второго символа "-" с конца брать текст до третьего символа "-" с конца
UDF, меняете j для ваших условий, например =iText(A2;3)
Код
Function iText(cell As String, j As Integer) As String
Dim mo As Object
Dim n As Integer
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = True
.Pattern = "[^-]+"
If .Test(cell) Then
Set mo = .Execute(cell)
For n = mo.Count - j To mo.Count - 1
iText = iText & mo(n) & "-"
Next
iText = Left(iText, Len(iText) - 6)
End If
End With
End Function
доставал такую часть: w13-wind-grey-bright-blue-w-el3801-2251-w
Код
Function LastAbraCadabra$(s$)
Dim re, ms
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "-[a-zA-z]+-(?![a-zA-z]+-)([^.]{3,21})\.html"
If re.test(s) Then
LastAbraCadabra = re.Execute(s)(0).submatches(0)
End If
End Function