Страницы: 1
RSS
Подставлять знак + кроме слов меньше 3 символов
 
Подставлять знак + кроме слов меньше 3 символов,
формула для модерницазции
Код
 ="+"&ПОДСТАВИТЬ(B21;" ";" +") 
Изменено: marat1984 - 15.11.2018 13:43:22
 
Имхо, только макросом/UDF.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Имхо, тоже.
Как вариант - несколько доп. ячеек. (по кол. пробелов+1)
 
вариант UDF в D2
 
Код
Function yyy$(t$)
   With CreateObject("VBScript.RegExp"): .Global = True: .IgnoreCase = True
    .Pattern = "(?:[^а-яё\w]|^)[а-яё\w]{3,}(?=[^а-яё\w]|$)"
 yyy = .Replace(t, "+$&")
  End With
End Function
Изменено: кузя1972 - 15.11.2018 16:09:01
 
для файл-примера из #1 ещё вариант UDF в G2
Код
Function aaa$(t$)
   With CreateObject("VBScript.RegExp"): .Global = True: .IgnoreCase = True
    .Pattern = "(?:\s|^)[а-яё\w]{3,}(?=\s|$)"
 aaa = .Replace(t, "+$&")
  End With
End Function
Изменено: кузя1972 - 16.11.2018 22:22:34
 
кнопка цитирования не для ответа [МОДЕРАТОР]

спасибо, Кузя

А можно сместить плюсы? У первого слова "+" спереди, но со 2-го слова прилипают к заду предыдущего слова
сейчас:+ключевое+ слово и   ии+ или+ фраза+ ааа аа
нужно:+ключевое +слово и ии +или +фраза +ааа аа
Изменено: marat1984 - 26.11.2018 12:06:12
 
вариант для файл-примера из #6 в D4

Код
Function zzz$(t$)
   With CreateObject("VBScript.RegExp"): .Global = True: .IgnoreCase = True
    .Pattern = "(?:[^а-яё\w]|^)[а-яё\w]{3,}(?=[^а-яё\w]|$)"
 zzz = .Replace(t, "+$&"): zzz = Replace(zzz, "+ ", " +")
  End With
End Function 
Изменено: кузя1972 - 26.11.2018 17:01:32
 
до кучи:
Код
Function ПРИСТАВИТЬ_ПЛЮС(Str$) As String
    Dim a, i&
    a = Split(Str)
    For i = 0 To UBound(a)
        If Len(a(i)) > 2 Then a(i) = "+" & a(i)
    Next
    ПРИСТАВИТЬ_ПЛЮС = Join(a)
End Function
Страницы: 1
Наверх