Страницы: 1
RSS
Изменение направления определения номера вхождения для функции ПОДСТАВИТЬ
 
Доброго дня
Подскажите пожалуйста как для функции ПОДСТАВИТЬ изменить подсчет вхождений на противоположный - не с начала в конец , а с конца к началу.

Есть ячейка A1 с содержимым:
tag1;tag2;tag3;tag4;tag5
В B1 вставляем функцию по замене ; на ;supertag; и необходимо чтобы номер вхождения считался с конца тоесть ; до tag5 это 1 вхождение до tag4 второе вхождение и т.д.

Сама функция :
Код
= ПОДСТАВИТЬ(A1;";";";supertag;";2)

Мое решение это подсчитать количество символов ; и от него отнять номер вхождения и +1 .

Подскажите пожалуйста, есть ли другое решение отличающиеся от моего и если есть то какое ? Файл во вложение содержит тот же код что и сдесь.
 
=SUBSTITUTE(A1;";";";supertag;";LEN(A1)-LEN(SUBSTITUTE(A1;";";))-2)
По вопросам из тем форума, личку не читаю.
 
seregasss435, написал
Цитата
есть ли другое решение отличающиеся от моего и если есть то какое ?
UDF
Код
Function iTag(cell$, n&)
Dim Delimiter As String
Dim mo As Object
   Delimiter = "supertag;"
 With CreateObject("VBScript.RegExp")
     .Global = True
     .Pattern = ";"
   If .test(cell) Then
     Set mo = .Execute(cell)
     If n <= mo.Count Then
       iTag = Mid(cell, 1, mo(n - 1).FirstIndex + 1) & Delimiter & Mid(cell, mo(n - 1).FirstIndex + 2)
     Else
       MsgBox "Место вставки " & Delimiter & "выходит за рамки строки"
     End If
   Else
     iTag = ""
   End If
 End With
End Function

Вызов =iTag(A1;2)
 
Спасибо
Страницы: 1
Наверх