Страницы: 1
RSS
Как из текста достать последние значения ячейки - цифры?
 
При этом длина текста перед цифрами разная, и количество цифр тоже разное.   Возможно формула есть .    Спасибо.
Изменено: Efim - 03.11.2018 02:55:49 (ошибка)
 
Efim, в модуль
Код
Public Function SelectMarge(ByVal iVal$, ByVal SSplit$) As Double
    Dim m
    m = VBA.Split(iVal$, SSplit$)
    SelectMarge = VBA.Replace(m(UBound(m)), " ", "")
End Function
использовать как формулу
Код
=SelectMarge(B3;"Маржа:")
 
вариант UDF
Код
Function aaa&(t$)
  With CreateObject("VBScript.RegExp"): .Pattern = "\d+": .Global = True
       aaa = .Execute(t)(.Execute(t).Count - 2)
  End With
End Function
Изменено: кузя1972 - 03.11.2018 06:22:26
 
вариант формулы в столбце E и функция vvv
Код
Function vvv&(t$)
  vvv = Split(Split(t, "Маржа:")(1), ".")(0)
End Function
 
Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ($B3;"Маржа:";ПОВТОР(" ";99));99));".";ПОВТОР(" ";50));50))
Изменено: кузя1972 - 03.11.2018 07:01:33
 
Благодарю за ответ ! Воспользовался формулой.
Как сделать, чтобы конечное значение можно было перемножить и затем суммировать результат? У меня что то нельзя редактировать

Куда вставлять функцию vvv ?
Изменено: Efim - 06.11.2018 13:08:36
 
Efim, alt+f11->добавить модуль->вставить в него
 
в ответ на #5
как вариант без использования клавиатуры
Сервис-Макрос-Запись макроса
Сервис -Макрос-Остановить запись
После макроса (например Макрос1) скопируйте функцию,например ещё два варианта UDF
Код
Function bbb&(t$)
  With CreateObject("VBScript.RegExp"): .Pattern = "Маржа: \d+(?=\.)"
       bbb = Mid(.Execute(t)(0), 
  End With
End Function
Код
Function ccc&(t$)
  With CreateObject("VBScript.RegExp"): .Pattern = "Маржа: (\d+)(?=\.)"
       ccc = .Execute(t)(0).Submatches(0)
  End With
End Function
Изменено: кузя1972 - 06.11.2018 13:09:06
 
Добрый день.
Код
=ПОДСТАВИТЬ(ПРАВСИМВ(СЖПРОБЕЛЫ(B3);ДЛСТР(СЖПРОБЕЛЫ(B3))-ПОИСК("Маржа:";СЖПРОБЕЛЫ(B3))-6);".";",")
 
Всем огромное спасибо! Нереально круто, что есть такой форум по облегчению жизни =)))
 
еще как вариант
=ПРОСМОТР(9^9;--ПРАВСИМВ(ПОДСТАВИТЬ(B3;".";",");СТРОКА($1:$10)))
если у вас десятичный разделитель точка, то ПОДСТАВИТЬ(B3;".";",") не нужно
Изменено: Михаил С. - 06.11.2018 13:29:00
 
=--ПОДСТАВИТЬ(ПСТР(B3;ПОИСК("а:";B3)+3;9);".";",")
Страницы: 1
Наверх