Страницы: 1
RSS
Автоматическая коррекция пробелов в числах
 
Всем привет!  
 
Задача такая приходит банк (поступления денег) в формате форд. После чего легко копируется в эксель. Так вот если сумма типа 1 987,65р. то она как Вы понимаете будет в ворде как текст. Надо из него ручками удалить р и пробел. А можно ли как то автоматизировать это? что бы например с A1 по A10 он пробежался по таким текстам и где есть пробел и "р." удалил и тогда текст станет числом.  
 
Спасибо большое
 
Форд неплохая машина :-) Паша, ищите темы про неразрывный пробел. Затем извлечение числа из текста.
 
Тут мы недавно с Сергеем формулами мерялись... Так вот его формула запятые оставляет...  
 
Public Function ExtractNumber(s As String)  
Dim i As Integer, str As String  
For i = 1 To Len(s)  
If InStr(1, "1234567890,", Mid(s, i, 1)) <> 0 Then str = str & Mid(s, i, 1)  
Next  
ExtractNumber = CDbl(str)  
End Function
 
to Паша  
{quote}{login=Паша}{date=03.09.2010 09:26}{thema=Автоматическая коррекция пробелов в числах}{post}  
... сумма типа 1 987,65р. то она как Вы понимаете будет в ворде как текст.    
{/post}{/quote}  
В ворде -не знаю. В экселе - точно текст  
{quote}{login=Паша}{date=03.09.2010 09:26}{thema=Автоматическая коррекция пробелов в числах}{post}  
Надо из него ручками удалить р и пробел. А можно ли как то автоматизировать это? что бы например с A1 по A10 он пробежался по таким текстам и где есть пробел и "р." удалил и тогда текст станет числом.  
{/post}{/quote}  
без рукоприкладства не обойдется, но автоматизировать можно  
1. выделям желаемый диапазон, например с А1 по А10  
2. в меню выбираем "Правка"=>Заменить  
в поле ЧТО - вводим пробел  
ЗАМЕНИТЬ НА - ставим точку  
ЗАМЕНИТЬ ВСЕ  
После этой процедуры уже можно производить математ. действия  
Если в ваших отчетах не принято денежные операции заканчивать "р." или "руб",  тогда ФОРМАТ Вам в помощь
 
немного накуролесил с цитированием.    
А edit - отсутствует
 
{quote}{login=0mega}{date=04.09.2010 09:02}{thema=Re: Автоматическая коррекция пробелов в числах}{post}  
без рукоприкладства не обойдется, но автоматизировать можно  
1. выделям желаемый диапазон, например с А1 по А10  
2. в меню выбираем "Правка"=>Заменить  
в поле ЧТО - вводим пробел  
ЗАМЕНИТЬ НА - ставим точку  
ЗАМЕНИТЬ ВСЕ  
После этой процедуры уже можно производить математ. действия  
Если в ваших отчетах не принято денежные операции заканчивать "р." или "руб",  тогда ФОРМАТ Вам в помощь{/post}{/quote}  
И что в результате получится? Вместо 1 987,65р - станет 1.987,65р. 0mega, Вы считаете что с этим можно "производить математ. действия"? Попробуйте.
Я сам - дурнее всякого примера! ...
 
Вот переделал свою функцию в макрос:  
Public Sub ExtractNumber()  
   Dim i As Integer, str As String, s As String, c As Range  
   For Each c In Selection.Cells  
       s = c  
       For i = 1 To Len(s)  
           If InStr(1, "1234567890,", Mid(s, i, 1)) <> 0 Then str = str & Mid(s, i, 1)  
       Next  
       c = CDbl(str)  
       str = ""  
   Next  
End Sub
Я сам - дурнее всякого примера! ...
 
{quote}{login=KuklP}{date=04.09.2010 09:18}{thema=Re: Re: Автоматическая коррекция пробелов в числах}  
И что в результате получится? Вместо 1 987,65р - станет 1.987,65р. {/post}{/quote}  
согласен  
{quote}{login=KuklP}{date=04.09.2010 09:18}{thema=Re: Re: Автоматическая коррекция пробелов в числах}  
Вы считаете что с этим можно "производить математ. действия"? {/post}{/quote}  
Да  
{quote}{login=KuklP}{date=04.09.2010 09:18}{thema=Re: Re: Автоматическая коррекция пробелов в числах}  
Попробуйте.{/post}{/quote}  
попробовал, результат на картинке  
пояснения:  
столбец А - исходные данные  
столбец В =А1*2  
столбец D был скопирован с А + "танцы с бубном"  
столбец E =D1*2
 
забыл зарегистрироваться. Верхний пост мой  
Что-то у меня с цитированием сплошные косяки получаются  
буду цитировать в ручную  
цитата: " И что в результате получится? Вместо 1 987,65р - станет 1.987,65р. ..."  
согласен  
цит:".., Вы считаете что с этим можно "производить математ. действия"?..."  
Да  
цит:"... Попробуйте."  
поробовал , проверьте результат
 
to The_Prist  
доброго дня желаю  
цит: "..0mega, предположу, что у Вас разедлителем групп разрядов является запятая, а разделителем целой и дробной части - точка..."  
на картинке столбец "Е" . используется только запятая для десятичного значения. разряды вообще не отделяются  
цит: "...У большинства пользователей эти разделители другие: пробел и запятая соответственно ..."  
Пробел и запятая - это исходные данные от которых автор хотел избавиться
 
{quote}{login=0mega}{date=04.09.2010 11:38}{thema=}{post}to Пробел и запятая - это исходные данные от которых автор хотел избавиться{/post}{/quote}  
Автор, вообще-то от запятой не собирался избавляться. От пробела и "р" - да.
 
Еще. Вы пишете: «ЗАМЕНИТЬ НА - ставим точку» - зачем? Ничего в этом поле не нужно ставить.
 
{quote}{login=Юрий М}{date=04.09.2010 11:43}{thema=Re: }{post}{quote}{login=0mega}{date=04.09.2010 11:38}{thema=}{post}to Пробел и запятая - это исходные данные от которых автор хотел избавиться{/post}{/quote}  
Автор, вообще-то от запятой не собирался избавляться. От пробела и "р" - да.{/post}{/quote}  
Юрий, здравствуйте  
Наличие или отсутствие"р." это не гводь программы  
В цифровом формате ячейка выполняет мат действия как с "р," так и без нее.  
естественно автор не просил убрать запятую.  
Вы, же прекрасно понимаете , что это моя опечатка.  
Ведь я же не акцентировал когда The_Prist ошибочно написал:  
"разедлителем групп разрядов является запятая, а разделителем целой и дробной части - точка. "  
(разЕДлителем + поменять мечтами "точка" и "запятая")  
ошибаться - это человеческий фактор. вполне нормальное и объяснимое явление
 
{quote}{login=Юрий М}{date=04.09.2010 11:58}{thema=}{post}Еще. Вы пишете: «ЗАМЕНИТЬ НА - ставим точку» - зачем? Ничего в этом поле не нужно ставить.{/post}{/quote}  
Я допускаю , что у нас с Вами разные оффисы, Но моя моя машина не выпускает из подменю, прка  я не заполню поле ЗАМЕНИТЬ НА
 
Здравствуй! Да и я не акцентировал :-) А разделителем действительно может являться и точка и запятая. А вот про замену пробела на точку - всё же лишнее :-) Думаю, что все уже во всём разобрались. Осталось Пашу дождаться...
 
0mega, у меня ваше преобразование вызывает ошибку #ЗНАЧ. О чем еще говорить? Или всем поменять региональные настройки?
Я сам - дурнее всякого примера! ...
 
{quote}{login=The_Prist}{date=04.09.2010 12:01}{thema=}{post}Кстати, к слову: скорее всего весь текст "1 987,65р." является именно ТЕКСТОМ. Т.е. "р." - это не часть формата, а часть значения ячейки. Следовательно, чтобы полностью перевести такой текст в число просто необходимо произвести замену "р." на пусто.{/post}{/quote}  
Если KukIP , тогда я его процитирую:  
"Попробуйте"
 
Сорри, Ваше преобразование.  
 
63446
Я сам - дурнее всякого примера! ...
 
{quote}{login=KuklP}{date=04.09.2010 01:21}{thema=}{post}0mega, у меня ваше преобразование вызывает ошибку #ЗНАЧ. О чем еще говорить? Или всем поменять региональные настройки?{/post}{/quote}  
вполне возможно что я "гадкий утенок", но Юрий и Prist - они ведь из ващего  "озера"  
никто из них не упоминал про "ошибку #ЗНАЧ"
 
{quote}{login=0mega}{date=04.09.2010 01:33}{thema=Re: }{post}{quote}{login=KuklP}{date=04.09.2010 01:21}{thema=}{post}0mega, у меня ваше преобразование вызывает ошибку #ЗНАЧ. О чем еще говорить? Или всем поменять региональные настройки?{/post}{/quote}  
вполне возможно что я "гадкий утенок", но Юрий и Prist - они ведь из ващего  "озера"  
никто из них не упоминал про "ошибку #ЗНАЧ"{/post}{/quote}  
Перечитайте пост The_Prist от 04.09.2010, 11:54.
Я сам - дурнее всякого примера! ...
 
Дим, файла нет(Not Found).
Я сам - дурнее всякого примера! ...
 
{quote}{login=0mega}{date=04.09.2010 01:33}{thema=Re: }{post}{quote}{login=KuklP}{date=04.09.2010 01:21}{thema=}{post}{/post}{/quote}  
но Юрий и Prist - они ведь из ващего  "озера" никто из них не упоминал про "ошибку #ЗНАЧ"{/post}{/quote}  
Упоминаю.
 
{quote}{login=The_Prist}{date=04.09.2010 01:22}{thema=Re: Re: }{post}{quote}{login=0mega}{date=04.09.2010 01:19}{thema=Re: }{post}Но моя моя машина не выпускает из подменю, прка  я не заполню поле ЗАМЕНИТЬ НА{/post}{/quote}Не повезло Вам...  
Это скорее всего недоработка версии под Mac. У Вас ведь эта операционка?{/post}{/quote}  
 
примерно догадываюсь откуда ветер дует...  
на всем  Excel пространстве только три чел об этом знали
 
Я знал. Из форума Сержа.
Я сам - дурнее всякого примера! ...
 
Такой вариант. Можно макросом, а можно вручную через меню Данные-Текст по столбцам...  
 
Sub Test()  
   Dim rng As Range  
   Set rng = ActiveSheet.Columns("A:A")  
   rng.TextToColumns _  
       Destination:=rng(1), _  
       DataType:=xlDelimited, _  
       Other:=True, _  
       OtherChar:="р", _  
       FieldInfo:=Array(Array(1, 1), Array(2, 9)), _  
       DecimalSeparator:=",", _  
       ThousandsSeparator:=" "  
End Sub
KL
 
{quote}{login=KuklP}{date=04.09.2010 01:38}{thema=Re: Re: }{post}{quote}{login=0mega}{date=04.09.2010 01:33}{thema=Re: }{post}{quote}{login=KuklP}{date=04.09.2010 01:21}{thema=}{post}0mega, у меня ваше преобразование вызывает ошибку #ЗНАЧ. О чем еще говорить? Или всем поменять региональные настройки?{/post}{/quote}  
вполне возможно что я "гадкий утенок", но Юрий и Prist - они ведь из ващего  "озера"  
никто из них не упоминал про "ошибку #ЗНАЧ"{/post}{/quote}  
Перечитайте пост The_Prist от 04.09.2010, 11:54.{/post}{/quote}  
могу предоставить еще одну укороченную цитату:  
{quote}{login=The_Prist}{date=04.09.2010 01:22}{thema=Re: Re: }{post}{quote}{login=0mega}{date=04.09.2010 01:19}{thema=Re: }{post}Но моя моя машина не выпускает из подменю, прка  я не заполню поле ЗАМЕНИТЬ НА{/post}{/quote}Не повезло Вам...  
Это скорее всего недоработка версии {/post}{/quote}
 
Никак эти цитаты не ложатся как надо !
 
{quote}{login=KuklP}{date=04.09.2010 09:30}{thema=}{post}Вот переделал свою функцию в макрос:  
Public Sub ExtractNumber()  
   Dim i As Integer, str As String, s As String, c As Range  
   For Each c In Selection.Cells  
       s = c  
       For i = 1 To Len(s)  
           If InStr(1, "1234567890,", Mid(s, i, 1)) <> 0 Then str = str & Mid(s, i, 1)  
       Next  
       c = CDbl(str)  
       str = ""  
   Next  
End Sub{/post}{/quote}  
 
Всем спасибо за помощь, использовал Ваш код. Всем благодарен
Страницы: 1
Читают тему
Loading...