Страницы: 1
RSS
Как удалить пробелы в значении, чтобы оно превратилось из текста в число
 
При переносе/копировании чисел в эксел в исходном тесте могут быть пробелы, из-за которых эксел не видит, что это число, а не текст.
Исправить эту недоработку стандартными средствами эксел невозможно. Приходится прибегать к самопальным костылям.
В частности, может быть удобным макрос для удаления пробелов (если можно выделить область ячеек, где находятся только числа).
Дополнительные сложности доставляет неразрывный пробел, который может отделять тысячи (миллионы и далее) от единиц или знак апострофа.
После выделения можно вызвать следующий макрос (если для него сделать кнопку в "Панели быстрого доступа"):
Код
Sub DelSpace()
' Chr(160)=^s | Chr(39)='
Selection.Replace Chr(160), ""
Selection.Replace Chr(39), ""
Selection.Replace " ", ""
End Sub
 
Цитата
pencil.p написал:
Исправить эту недоработку стандартными средствами эксел невозможно
это утверждение или Ваши домыслы? :) Можно просто скопировать из любого числа этот пробел -выделить нужный диапазон -Ctrl+H. В поле Найти вставить скопированный символ, поле заменить оставить пустым. Excel все заменит и сам преобразует...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
из любого числа этот пробел -выделить нужный диапазон
или просто ввести с клавиатура https://ru.wikipedia.org/wiki/Alt-%D0%BA%D0%BE%D0%B4
По вопросам из тем форума, личку не читаю.
 
я два часа потерял (роясь в инете и на вашем форуме в том числе), чтобы найти причину почему не работает макрос. Оказалось, что нужно было удалить неразрывный пробел. Это было видно только в Ворде при включённом П и потом найти как его обозначить в экселе через char(160), что тоже нашёл в вордовских макросах, написанных ранее. На этом форуме я этого не нашёл.
Ваш метод в данном случае не работает.
Поэтому просто решил поделиться самым простым методом для тех, кто может столкнуться с этой проблемой.
Нет ничего проще, чем выделить нужный диапазон и нажать кнопку.
Изменено: pencil.p - 14.02.2019 13:23:59
 
Цитата
БМВ написал:
просто ввести с клавиатура
вот здесь проблема - на ноутах без доп.клавиатуры задача сводится к нереальной.  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
pencil.p написал:
Ваш метод в данном случае не работает.
У всех работает , а у вас нет. У вас неправильные пчелы.

Дмитрий(The_Prist) Щербаков, пойдем сложным путем :-)
Изменено: БМВ - 14.02.2019 13:32:37
По вопросам из тем форума, личку не читаю.
 
Если использовать макросы, то поэкспериментируйте с Cdbl. Эта функция довольно умная. :)  
Владимир
 
Цитата
БМВ написал:
пойдем сложным путем :-)
ну зачем, если можно просто скопировать символ из строки? На мой взгляд это самое простое, т.к. заранее неизвестно что там вообще за пробел.
Цитата
pencil.p написал:
и на вашем форуме в том числе
тема в принципе поднималась не один раз и пережевана уже в лоскуты. Но в одном Вы правы: искать такое сложно что здесь, что вообще в интернете, т.к. каждый проблему видит и описывает по своему.
Цитата
pencil.p написал:
Нет ничего проще, чем выделить нужный диапазон и нажать кнопку
Расскажите это людям, у которых от одного слова "макрос" уже волосы шевелятся :) И тем более тем, у кого макросы на рабочих ПК запрещены на уровне политики безопасности.
Я уже свое видение самого простого описал: нет ничего проще выделения "виновника" в строке и замены его стандартными средствами. А если учесть, что помимо пробелов есть еще и разные точки и прочие символы...

Ну и уж чтобы объективно: Ваше решение хорошее, рабочее и если бы не категоричность насчет невозможности сделать это стандартными средствами - может и обсуждения бы такого не было :) И кстати: простая замена(Selection.Replace) не преобразует текст в число автоматом из VBA - надо еще преобразование делать. Иначе пробелы-то будут удалены, но числом значение не станет.
Изменено: Дмитрий(The_Prist) Щербаков - 14.02.2019 13:44:22
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
категоричность, согласен, излишняя. Но... я ж не вижу какой это пробел - обычный или неразрывной. Потом несколько раз применять к одному месту сложный алгоритм копирования/вставки... и прочее.

По поводу необходимости преобразования - не знаю, у меня оставшиеся цифры сразу слипаются и прижимаются вправо - значит это число. И формулы потом с ними работают как с числами -делят, умножают.

Подскажите, пожалуйста, (не нашёл) как можно удалить всё, кроме цифр из ячейки? чтобы текст типа "шт." и прочее, который "прилип" к числу, убрался.
Через кнопку макроса.
Спасибо
 
Цитата
pencil.p: как можно удалить всё, кроме цифр из ячейки?
ващет, это уже другая тема, но т.к.
Цитата
Дмитрий(The_Prist) Щербаков: тема в принципе поднималась не один раз и пережевана уже в лоскуты
, то у Дмитрия на сайте имеются отличные мануалы, либо поиск по интернетам приведённой мной цитаты ваших слов  ;)
Изменено: Jack Famous - 14.02.2019 14:02:30
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
ну зачем, если можно просто скопировать символ из строки?
Дмитрий, это я, как ноутбучник, просто напомнил об инструменте, позволяющем ввести что нужно, и ненужно :-)
Изменено: БМВ - 14.02.2019 14:01:07
По вопросам из тем форума, личку не читаю.
 
Анализ текста регулярными выражениями (RegExp) в Excel
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Jack Famous написал:
ващет, это уже другая тема
именно поэтому и попросил ссылки без обсуждения (см.правила форума)
Спасибо!
 
Ещё один вариант "Текст по столбцам". Разделить столбец по фиксированному значению (по каждому знаку), потом отфильтровать по каждому столбцу пробелы и удалить их (Del). Вместо пробелов появятся пустые значения. Потом сцепить обратно. Может, многоходово, но быстро...
Мозги, конечно не видно, но когда их не хватает - заметно!
 
Просто хочу сказать спасибо всем, кто отписался в теме и сэкономил мне кучу времени. Спасибо!
Страницы: 1
Наверх