Страницы: 1
RSS
Извлечение цифр по условию
 
 А как можно решить с помощью формул такую нетривиальную задачу

есть некий типовой тест такого содержания
Цитата
период времени с 14.02.2017 с 16:00 часа по 15.02.2017 г. 04:00 часа неустановленное лицо, находясь на законных основаниях в доме … по ул. Веселая, с. Южное, Республики Крым, тайно похитило: ноутбук «Asus» X54 C-SX8480 стоимостью 5000 рублей, мобильный телефон «Самсунг» стоимостью 1000 рублей, икону «Божией матери» стоимостью 4000 рублей, икону «Иисуса Христа» стоимостью 3000 рублей принадлежащие Б. чем причинило значительный имущественный ущерб Б. на общую сумму 13000 рублей.
как извлечь текст находящийся между словами "на общую сумму" и "рублей" то есть 13000?

начал писать но дописать не могу
Код
=ЕСЛИОШИБКА(--ПСТР(ПСТР(B2;ПОИСК("рублей";B2)-7;7);ПОИСК("(";ПСТР(B2;ПОИСК("рублей";B2)-7;7))+1;7-ПОИСК("(";ПСТР(B2;ПОИСК("рублей";B2)-7;7)));--ПСТР(ПСТР(B2;ПОИСК("рублей";B2)-7;7);ПОИСК(" ";ПСТР(B2;ПОИСК("рублей";B2)-7;7))+1;7-ПОИСК(" ";ПСТР(B2;ПОИСК("рублей";B2)-7;7))))
Изменено: Виктор C - 05.10.2017 22:09:37
 
Специально для Вашего примера.
Код
=ПСТР(ПСТР(B2;ПОИСК("на общую сумму";B2)+15;99);1;ПОИСК(" ";ПСТР(B2;ПОИСК("на общую сумму";B2)+15;99))-1)
 
gling, спасибо за науку
 
Если требуемое всегда в конце текста:
=--СЖПРОБЕЛЫ(ЛЕВБ(ПРАВБ(ПОДСТАВИТЬ(B2;" ";ПОВТОР(" ";50));100);50))
 
вариант функции в C2
 
Код
Function vvv(t$)
  With CreateObject("VBScript.RegExp"): .Pattern = "на общую сумму (\d+) рублей"
     If .test(t) Then vvv = .Execute(t)(0).Submatches(0) Else vvv = t
  End With
End Function
Изменено: sv2013 - 05.10.2017 23:03:07
 
=ЛЕВСИМВ(ПСТР(B2;ПОИСК("сумму";B2)+6;100);НАЙТИ(" ";ПСТР(B2;ПОИСК("сумму";B2)+6;100)))
Изменено: Alexanderr - 06.10.2017 02:04:02
 
Alexanderr, в Вашем случае и искать не нужно, искомое у Вас есть.
А если сумма будет 12999? :)
 
Alexanderr,
я бы вашу формулу сократил до
=13000
+ такой формулы в том, что она будет работать стабильно, даже если общая сумма равна 12999, как заметил Виктор
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
да уж..., согласен, прогулялся по кругу)))
 
тогда вот так:
=ЛЕВСИМВ(ПСТР(B2;ПОИСК("сумму";B2)+6;100);НАЙТИ(" ";ПСТР(B2;ПОИСК("сумму";B2)+6;100)))
Страницы: 1
Наверх