Страницы: 1
RSS
Как убрать символы до определенного знака в чередующихся значениях через запятую
 
Как убрать символы до определенного знака в ячейке с чередующимися значениями через запятую. Пример во вложении. Версия excel 2007
 
Функция пользователя (UDF)
Код
Function fDelText(sText As String, Optional sSep1 As String = ", ", Optional sSep2 As String = "/") As String
    Dim aSpl
    Dim j As Long, sTemp As String
    
    aSpl = Split(sText, sSep1)
    
    For j = 0 To UBound(aSpl)
        sTemp = sTemp & sSep1 & Split(aSpl(j) & sSep2, sSep2)(1)
    Next j
    
    fDelText = Mid$(sTemp, Len(sSep1) + 1)
End Function

По умолчанию заданы разделители ", " и "/", но можно задать другие.
В ячейку:
=fDelText(A2)
или
'=fDelText(A2;", ";"/") (это если надо разделители поменять)
 
для вас может оказаться вариантом
=SUBSTITUTE(TRIM(TRIM(MID(SUBSTITUTE(SUBSTITUTE(A2;",";"/");"/";REPT(" ";LEN(A2)));1*LEN(A2);LEN(A2))) & " "&
TRIM(MID(SUBSTITUTE(SUBSTITUTE(A2;",";"/");"/";REPT(" ";LEN(A2)));3*LEN(A2);LEN(A2))) &" "&
TRIM(MID(SUBSTITUTE(SUBSTITUTE(A2;",";"/");"/";REPT(" ";LEN(A2)));5*LEN(A2);LEN(A2))) &" "&
TRIM(MID(SUBSTITUTE(SUBSTITUTE(A2;",";"/");"/";REPT(" ";LEN(A2)));7*LEN(A2);LEN(A2))) &" "&
TRIM(MID(SUBSTITUTE(SUBSTITUTE(A2;",";"/");"/";REPT(" ";LEN(A2)));9*LEN(A2);LEN(A2))));" ";", ")

но если значений больше то нужно добавить еще блоков
По вопросам из тем форума, личку не читаю.
 
:)
А в моей формуле 13 знаков и можно сократить:
=f(A2)
 
Цитата
vikttur написал: В ячейку:=fDelText(A2)или'=fDelText(A2;", ";"/")
Спасибо огромное за очень оперативный ответ! Но я совсем тупой. Это нужно сделать через макрос или формулу? У меня формулы прописываются на кирилице. fDelText - какой аналог на кирилице?
 
Работает же? В файле все есть.
Функции пользоватля пишутся на VBA (макросы - такое слышали?). Код размещен в общем модуле. Открыть редактор VBA - Alt+F11

Цитата
Андрей Васильев написал:  fDelText - какой аналог на кирилице?
Не нужен аналог (да и нет его). Название функции - на латинице.
 
Спасибо огромное! Про макросы слышал, но никогда не работал. Был отключен у меня. Включил в настройках.

БМВ, спасибо большое за формулу! Тоже отлично работает!
 
UDF
Код
Function iJPG_(cell$) As String
 With CreateObject("VBScript.RegExp")
   .Global = True
   .Pattern = "\d{6}//?"
     If .test(cell) Then
       iJPG_ = .Replace(cell, "")
     End If
 End With
End Function
Страницы: 1
Наверх