Страницы: 1
RSS
Извлечение числа из текста по маске
 
Здравствуйте.
Как извлечь из ячейки с текстом, числа по маске "##/##" с помощью формулы Excell в соседнюю ячейку (Excell 2007).
с.Новопавловка 105с 5/9 Н/у Т 0550888989             нужно вытащить       5,9         (знак "/" нужно заменить на запятую)
Сов/Бок145м Нов Эл 3/10 Т 555672327            =>                   3,10
105 11/12 12мкр рем Т 0700308900                   =>                  11,12  
В инете искал, не нашел.  Подскажите пожалуйста.   :(
Изменено: Chione - 11.08.2014 01:43:26 (Приложил файл примера)
 
ПрочтитеА в файле
Цитата
Новопавловка
Это где? Файла нет и всего остального тоже, возможно не там смотрел. Прочтите http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=rules
Изменено: gling - 07.08.2014 20:42:12 (поставил пробел)
 
ТЫЦ
 
Спасибо, прочел. Поиск по форуму ничего не дал.
Файл примера приложил.
Изменено: Chione - 07.08.2014 20:59:30
 
Ivan.kh, она не работает в моем случае.
Изменено: Chione - 11.08.2014 01:43:56
 
Массивная
Цитата
=--ПОДСТАВИТЬ(ПСТР(C3;МАКС(ЕСЛИ(ПОИСК(ИНДЕКС({"1/";"2/";"3/";"4/";"5/";"6/";"7/";"8/";"9/"};СУММПРОИЗВ(ЕЧИСЛО(ПОИСК({"1/";"2/";"3/";"4/";"5/";"6/";"7/";"8/";"9/"};C3))*СТОЛБЕЦ($A$1:$I$1)));C3;1)>(ПСТР(C3;СТРОКА($1:$99);1)=" ")*СТРОКА($1:$99);(ПСТР(C3;СТРОКА($1:$99);1)=" ")*СТРОКА($1:$99);));МИН(ЕСЛИ(ПОИСК(ИНДЕКС({"1/";"2/";"3/";"4/";"5/";"6/";"7/";"8/";"9/"};СУММПРОИЗВ(ЕЧИСЛО(ПОИСК({"1/";"2/";"3/";"4/";"5/";"6/";"7/";"8/";"9/"};C3))*СТОЛБЕЦ($A$1:$I$1)));C3;1)<(ПСТР(C3;СТРОКА($1:$99);1)=" ")*СТРОКА($1:$99);(ПСТР(C3;СТРОКА($1:$99);1)=" ")*СТРОКА($1:$99);99^99))-МАКС(ЕСЛИ(ПОИСК(ИНДЕКС({"1/";"2/";"3/";"4/";"5/";"6/";"7/";"8/";"9/"};СУММПРОИЗВ(ЕЧИСЛО(ПОИСК({"1/";"2/";"3/";"4/";"5/";"6/";"7/";"8/";"9/"};C3))*СТОЛБЕЦ($A$1:$I$1)));C3;1)>(ПСТР(C3;СТРОКА($1:$99);1)=" ")*СТРОКА($1:$99);(ПСТР(C3;СТРОКА($1:$99);1)=" ")*СТРОКА($1:$99);)));"/";",")
Изменено: Ivan.kh - 07.08.2014 21:39:39
 
Мдааа, да ты монстр.   :)  
Я щас голову сломаю пока пойму   :D  
Если не сложно можешь упростить, без замены слеша на запятую.
А потом я слеш через реплейс сам заменю.
Изменено: Chione - 11.08.2014 01:44:20
 
В этой формуле когда искомая цифра стоит в начале текста, то формула её не находит.
Пример:
2/5 Сов/Бок145м Нов Эл Т 555672327 => здесь она не найдет 2/5
И еще в нескольких случаях не находит.
Файл прилагаю.
Изменено: Chione - 11.08.2014 01:44:33
 
Чуть короче, формула массива:
Код
=ПОИСКПОЗ(9^9;ПОИСК(" "&СТРОКА($1:$100)-1&"/";C3))-1&","&ПОИСКПОЗ(9^9;ПОИСК("/"&СТРОКА($1:$100)-1&" ";C3))-1
 
Формулу поправил, как упростить не знаю  
 
Не массивный вариант, перебирает все варианты #/#, #/##, ##/#, ##/##
Код
=ПРОСМОТР(9^9;ПОИСК(" "&ЦЕЛОЕ((СТРОКА($1:$10000)-1)/100)&"/"&ОСТАТ(СТРОКА($1:$10000)-1;100)&" ";C3);ЦЕЛОЕ((СТРОКА($1:$10000)-1)/100)&","&ОСТАТ(СТРОКА($1:$10000)-1;100))
 
MCH, Ваша формула вроде бы не отрабатывает случай:
Цитата
2/5 Сов/Бок145м Нов Эл Т 555672327 => здесь она не найдет 2/5
Изменено: Ivan.kh - 11.08.2014 01:44:57
 
Можно немного допилить:
Код
=ПОИСКПОЗ(9^9;ПОИСК(" "&СТРОКА($1:$100)-1&"/";" "&C3))-1&","&ПОИСКПОЗ(9^9;ПОИСК("/"&СТРОКА($1:$100)-1&" ";C3&" "))-1

Код
=ПРОСМОТР(9^9;ПОИСК(" "&ЦЕЛОЕ((СТРОКА($1:$10000)-1)/100)&"/"&ОСТАТ(СТРОКА($1:$10000)-1;100)&" ";" "&C3&" ");ЦЕЛОЕ((СТРОКА($1:$10000)-1)/100)&","&ОСТАТ(СТРОКА($1:$10000)-1;100))
 
MCN, большущее вам спасибо. И Ivan.kh вам тоже.
Конечно, осталось одно исключение, задавшее дальнейшую интригу, но я вполне удовлетворен.    :D  
Интересно будет ли продолжение мозгового штурма.   ;)
Изменено: Chione - 11.08.2014 01:45:30
 
MCH,
Изменено: Ivan.kh - 07.08.2014 23:24:28
 
MCH, браво вы все-таки добили.  :D  
С такими умами Россия всегда будет впереди планеты всей.   ;)
 
Спасибо вам и успехов в дальнейших изысканиях.  :)
 
=ПОДСТАВИТЬ(ПСТР(C3;ПОИСКПОЗ(2;ЧАСТОТА(ЕСЛИ(КОДСИМВ(ПСТР(C3;СТРОКА($1:$99);1)&"/")<58;СТРОКА($1:$99));ЕСЛИ(КОДСИМВ(ПСТР(C3;СТРОКА($1:$99);1)&"/")<>47;СТРОКА($1:$99))+1);)-2;3);"/";",")
Изменено: Владимир - 05.10.2014 14:40:29
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, Ваша формула неверно срабатывает в случ.:
105 11/12 12мкр рем Т 0700308900
Должно быть 11,12. а формула выдала результат 1,1
Страницы: 1
Наверх