Страницы: 1
RSS
Вытащить из ячейки текст между разделителями
 
Всем привет.
Подскажите пожалуйста, есть у меня исходный файл "пример", в котором есть столбец: ИТ-сервис\КС\сервер. Мне нужно этот столбец разделить на два. Что бы в одном отображались данные  ИТ-сервис\КС а во втором сервер.
Формула для этого есть, она рабочая: =ЕСЛИОШИБКА(ПСТР([@[ИТ-сервис/КС/Сервер]];ЕСЛИОШИБКА(НАЙТИ("\";[@[ИТ-сервис/КС/Сервер]];ЕСЛИОШИБКА(НАЙТИ("\";[@[ИТ-сервис/КС/Сервер]]);0)+1);0)+1;(ЕСЛИОШИБКА(НАЙТИ("\";[@[ИТ-сервис/КС/Сервер]];ЕСЛИОШИБКА(НАЙТИ("\";[@[ИТ-сервис/КС/Сервер]];ЕСЛИОШИБКА(НАЙТИ("\";[@[ИТ-сервис/КС/Сервер]]);0)+1);0)+1);ДЛСТР([@[ИТ-сервис/КС/Сервер]])+1)-(ЕСЛИОШИБКА(НАЙТИ("\";[@[ИТ-сервис/КС/Сервер]];ЕСЛИОШИБКА(НАЙТИ("\";[@[ИТ-сервис/КС/Сервер]]);0)+1);0)+1)));[@[ИТ-сервис/КС/Сервер]])

Пробовал использовать запись макроса, но формула в макрос записывается некорректная:
   ActiveCell.FormulaR1C1 = _
       "=IFERROR(MID([@[ИТ-сервис/КС/Сервер]],IFERROR(FIND("""",[@[ИТ-сервис/КС/Сервер]],IFERROR(FIND("""",[@[ИТ-сервис/КС/Сервер]]),0)+1),0)+1,(IFERROR(FIND("""",[@[ИТ-сервис/КС/Сервер]],IFERROR(FIND("""",[@[ИТ-сервис/КС/Сервер]],IFERROR(FIND("""",[@[ИТ-сервис/КС/Сервер]]),0)+1),0)+1),LEN([@[ИТ-сервис/КС/Сервер]])+1)-(IFERROR(FIND("""",[@[ИТ-сервис/КС/Сервер]],IFERRO"& _
       """",[@[ИТ-сервис/КС/Сервер]]),0)+1),0)+1))),[@[ИТ-сервис/КС/Сервер]])"

Подскажите, где что не так делаю, может в знаках ошибся?
Заранее спасибо!

P.S. Надеюсь не нарушил правила форума.
Админ извеняй за вчерашнюю некорректную тему.
 
А не проще использовать встроенные в VBA средства? UDF и нет проблем:
Код
Function GetStringBetweenSep(sTxt$, Optional lPos& = 3, Optional sSep$ = "\") As String
'sTxt - текст для поиска подстроки
'lPos - позиция нужного текста в sTxt между разделителями sSep
'sSep - разделитель, по которому разбивать текст sTxt
    Dim asp
    If sTxt = "" Then
        GetStringBetweenSep = vbNullString
        Exit Function
    End If
    asp = Split(sTxt, sSep)
    If UBound(asp) >= lPos - 1 Then
        GetStringBetweenSep = asp(lPos - 1)
    End If
End Function

Вызывать из ячейки так:
=GetStringBetweenSep([@[ИТ-сервис/КС/Сервер]];3)

Что такое функция пользователя(UDF)?

P.S. А название темы все равно в топку. Ваша цель конечная какая? Правильно: вытащить из ячейки текст между разделителями. Вот и название темы...
Изменено: Дмитрий(The_Prist) Щербаков - 03.06.2020 10:19:37
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо большое. Буду пробовать.  
Страницы: 1
Наверх