Страницы: 1 2 След.
RSS
выделение цифры из текста
 
Доброе время суток, помогите пжл,    
есть текст, н-р ПИТЬЕВОЙ "ДАНОН"  290 гр. Персик-Маракуйя -    
мне нужно вытащить из названия, только 290. Буду очень благодарна за помощь
 
Вот не самый универсальный, но вариант. В ячейку пишем =ТОЛЬКОЦИФРЫ(А1)  
Function ТОЛЬКОЦИФРЫ(ячейка As Range) As Long  
Dim i As Integer, Результат As String  
Dim Символ As String  
For i = 1 To Len(ячейка)  
   Символ = Mid(ячейка, i, 1)  
   If IsNumeric(Символ) Then  
       Результат = Результат & Символ    
   End If  
Next i  
ТОЛЬКОЦИФРЫ = Val(Результат)  
End Function
 
Или формулой массива:  
=ПСТР(A1;ПОИСКПОЗ(;---ЕОШ(-ПСТР(A1;СТРОКА($1:$999);1)););ПОИСКПОЗ(2;1/НЕ(ЕОШ(-ПСТР(A1;СТРОКА($1:$999);1))))-ПОИСКПОЗ(;---ЕОШ(-ПСТР(A1;СТРОКА($1:$999);1));)+1)
 
Вот такой вариант формулой. Более длинный но без матричного ввода и очень быстрый в пересчете:  
 
'=--ПСТР(ЛЕВСИМВ(A1;МАКС(ЕСЛИ(ЕЧИСЛО(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1));НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1))));МИН(ЕСЛИ(ЕЧИСЛО(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1));НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1)));32000)
KL
 
Ещё вот такое придумалось:  
=ПРОСМОТР(99^99;--ЛЕВСИМВ(ПСТР(A11;МИН(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A11&"0123456789"));15);{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}))
 
Вот так, пожалуй, даже лучше - если в тексте нет числа, то выдаст ноль:  
=ПРОСМОТР(99^99;--ЛЕВСИМВ(ПСТР(A1&"0";МИН(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1&"0123456789"));15);{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}))  
 
Предыдущая формула была для A11, эта - для A1.  
Обе - обычные формулы, а не формулы массива.
 
{quote}{login=ZVI}{date=06.06.2010 03:09}{thema=}{post}Вот так, пожалуй, даже лучше - если в тексте нет числа, то выдаст ноль:  
=ПРОСМОТР(99^99;--ЛЕВСИМВ(ПСТР(A1&"0";МИН(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1&"0123456789"));15);{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15})){/post}{/quote}  
Подправил для случая, когда число - в конце строки:  
=ПРОСМОТР(99^99;--ЛЕВСИМВ(ПСТР(A1&"_0";МИН(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1&"_0123456789"));15);{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}))
 
То же самое для тех, кому важнее краткость:  
=ПРОСМОТР(2^64;--ЛЕВСИМВ(ПСТР(A1&"_0";МИН(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1&"_0123456789"));15);СТРОКА($1:$15)))
 
{quote}{login=nilem}{date=05.06.2010 02:00}{thema=}{post}Вот не самый универсальный, но вариант. В ячейку пишем =ТОЛЬКОЦИФРЫ(А1)  
Function ТОЛЬКОЦИФРЫ(ячейка As Range) As Long  
Dim i As Integer, Результат As String  
Dim Символ As String  
For i = 1 To Len(ячейка)  
   Символ = Mid(ячейка, i, 1)  
   If IsNumeric(Символ) Then  
       Результат = Результат & Символ    
   End If  
Next i  
ТОЛЬКОЦИФРЫ = Val(Результат)  
End Function{/post}{/quote}
 
{quote}{login=ZVI}{date=06.06.2010 03:19}{thema=Re: }{post}{quote}{login=ZVI}{date=06.06.2010 03:09}{thema=}{post}Вот так, пожалуй, даже лучше - если в тексте нет числа, то выдаст ноль:  
=ПРОСМОТР(99^99;--ЛЕВСИМВ(ПСТР(A1&"0";МИН(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1&"0123456789"));15);{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15})){/post}{/quote}  
Подправил для случая, когда число - в конце строки:  
=ПРОСМОТР(99^99;--ЛЕВСИМВ(ПСТР(A1&"_0";МИН(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1&"_0123456789"));15);{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15})){/post}{/quote}
 
ТОЛЬКОЦИФРЫ() - это пользовательская функция (макрос), который можно увидеть, если в post_129271.xls нажать Alt-F11
 
Формула на английском:  
=LOOKUP(2^64,--LEFT(MID(A1&"_0",MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"_0123456789")),15),{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}))
 
Приложил на всякий случай пример. Формула отобразится по-русски в русской версии Excel, по-английски - в английской и т.п.
 
Сколько вариантов!  
Владимир, красиво, черт подери! Ну почему такие конструкции мне в голову не приходят? :( Нужно работать над собой!    
На пару символов короче:  
=ПРОСМОТР(9^16;--ПСТР(ПСТР(A1&0;МИН(НАЙТИ({1;2;3;4;5;6;7;8;9;0};A1&1234567890));15);1;СТРОКА($1:$15)))
 
Хотя..., зря убрал подчеркивание :)
 
{quote}{login=kim}{date=06.06.2010 05:11}{thema=}{post}Сколько вариантов!  
Владимир, красиво, черт подери! Ну почему такие конструкции мне в голову не приходят? :( Нужно работать над собой!    
На пару символов короче:  
=ПРОСМОТР(9^16;--ПСТР(ПСТР(A1&0;МИН(НАЙТИ({1;2;3;4;5;6;7;8;9;0};A1&1234567890));15);1;СТРОКА($1:$15))){/post}{/quote}  
Ну да, Игорь, такой вариант выдаст лишний ноль, если число - в конце строки  
т.е для ПИТЬЕВОЙ "ДАНОН" Персик-Маракуйя 290  
выдаст 2900  
У меня это тоже не сразу было отработано - см. выше :-)
 
Если "ДАНОН" на порядок больше - беда. А вот если такое с водкой - это за ошибку не считается.
 
{quote}{login=Юрий М}{date=06.06.2010 05:59}{thema=}{post}Если "ДАНОН" на порядок больше - беда. А вот если такое с водкой - это за ошибку не считается.{/post}{/quote}  
Типун Вам...
Я сам - дурнее всякого примера! ...
 
Ребята! А вопрос в догонку можно?  
Изменяется значение в ячейке и в формуле представленной ввиде текста меняется значение!  1,25 иземеняется на 30 (30 х 78,9 х 0,45 х 5)+20%  
И как текст типа (1,25 х 78,9 х 0,45 х 5)+20% заставить считать!
 
Знаю, но позориться не хочу. Тут такие ЗУБРЫ формулисты: ZVI, kim, KL, да еще и Юрий М,  что мне только хвост поджать...
Я сам - дурнее всякого примера! ...
 
Сергей, с каких это пор я формУлист? Да и далеко не зубр! Колитесь. Я токма если макросом...
 
А если немного попозорится?  
Очень нужно!
 
DON, макрофункция ВЫЧИСЛИТЬ() легко с этим справляется, если конечно правильно понял...
 
Скорее всего вы поняли правильно, чего немогу сказать о себе...  
макрофункция ВЫЧИСЛИТЬ() где живет???
 
{quote}{login=Юрий М}{date=06.06.2010 08:05}{thema=}{post}Сергей, с каких это пор я формУлист? Да и далеко не зубр! Колитесь. Я токма если макросом...{/post}{/quote}  
Я читаю форум. И видел как Вы с макросами... И в моем заявлении нет ничего, что противоречило бы утверждению: Юрий М - макрушник:-)  
То DON: Вам уже ответил спец.  
То kim: "(1,25 х 78,9 х 0,45 х 5)+20%" видимо не зря не стал позориться, мне показалось, что автор хочет это выражение в виде формулы.
Я сам - дурнее всякого примера! ...
 
Вот же тормоз! Читайте:  
И видел как Вы с формулами...
Я сам - дурнее всякого примера! ...
 
Вы правы на все 100% автор хочет это выражение в виде формулы.  
А то с макросами никак.
 
{quote}{login=The_Prist}{date=06.06.2010 08:17}{thema=}{post}- то недомакросы справятся.  
{/post}{/quote}  
А я об этом ни сном ни духом. Ибо в формулах..лых..ЛОХ!
Я сам - дурнее всякого примера! ...
 
{quote}{login=DON}{date=06.06.2010 08:30}{thema=Re: KuklP}{post}Вы правы на все 100% автор хочет это выражение в виде формулы.  
А то с макросами никак.{/post}{/quote}  
The_Prist дал полностью исчерпывающий ответ. И то, что я хотел написать - и то что умничка kim предложил. Так что я поступил правильно.
Я сам - дурнее всякого примера! ...
 
{quote}{login=KuklP}{date=06.06.2010 08:26}{thema=}{post}видел как Вы с формулами...{/post}{/quote}  
Поискал по Форуму. Действительно - оказывал помощь с формулами. Выглядело это так: = A1
Страницы: 1 2 След.
Читают тему
Наверх