Страницы: 1
RSS
Найти позицию любого числа в ячейке
 
Добрый день, уважаемые Форумчане!  
Никак не могу решить задачу, подскажите, пожалуйста, кто знает.  
 
Суть задачи:  
ячейка содержит текст "Белгород 1".  
Нужно, чтобы она отображала позицию первого любого числа. Для данного примера - это число 10.  
Сначала думал, что будет просто: =НАЙТИ("#";$A8), но как оказалось, маска "#" не поддерживается функциями "НАЙТИ" и "ПОИСК".  
Затем поверил, что уже решил проблему чере {=НАЙТИ({1;2;3;4;5;6;7;8;9;0};$A8;1)}  
Формула, действительно, выдала значение "10", но, если изменить "Белгород 1" на "Белгород 2", то вновь печальное "#ЗНАЧ!".  
А мне хотелось бы, чтобы для случая "Белгород 1" формула выдавала значение "10", а для случая "Бел3город 1" - значение "4", т.е. первое любое число.  
Подскажите, может ли данная задача быть решена обычными формулами (без макросов)?  
Заранее благодарю за ответы.
 
Ф-ла массива (Ctrl+Shift+Enter)  
=МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1));СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1E+99))
 
=ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(-ПСТР(A1;СТРОКА($A$1:ИНДЕКС(A:A;ДЛСТР($A$1)));1));0)
 
С долларами чуть ошибся  
=ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(-ПСТР(A1;СТРОКА($A$1:ИНДЕКС($A:$A;ДЛСТР(A1)));1));0)
 
г-н Казанский, Михаил!  
Благодарю Вас, что откликнулись!  
Очень понравились оба варианта, но решил остановиться на предложении г-на Казанского.  
В ответе Михаила смутила обязательная привязка к ячейке в первой строке.  
 
Очень понравился прием посимвольной разбивки содержимого ячейки - "=ПСТР(A5;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)" - не знал такого.  
 
Большое спасибо Вам еще раз.  
 
Моя задача решена (тему можно закрыть).
 
У Михаила формула более оптимальная. Она отнюдь не привязаня к А1, этот кусок  
ПСТР(<ваша_ячейка>;СТРОКА($A$1:ИНДЕКС($A:$A;ДЛСТР(<ваша_ячейка>)));1)  
то же самое, что  
ПСТР(<ваша_ячейка>;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(<ваша_ячейка>)));1)  
но формула "нелетучая".
 
Наговорили гадостей про Вашу "ДВССЫЛ", а мне она понравилась!  
Вероятно, Вы правы.  
У Михаила формула и выглядит покороче.  
Возьму ее, чтобы не перегружать процессор.
Страницы: 1
Читают тему
Наверх