| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > Форматирование столбца в Excel Дополнение нулями

Форматирование столбца в Excel Дополнение нулями

Ответ
Поиск в этой теме
Непрочитано 07.05.2009, 21:45 #1
Форматирование столбца в Excel Дополнение нулями
Солидворкер
Moderator
 
Конструктор (машиностроение)
 
Россия
Регистрация: 23.10.2006
Сообщений: 22,998

Коллеги, подскажите, не могу сообразить, можно ли штатными средствами Excel сделать следующее
Есть столбец, строки которого выглядят примерно так:
1221AC
12D2F8
112323
11E768
Строки надо привести к следующему виду:
0001221AC
00012D2F8
000112323
00011E768

Есть другой столбец, строки которого выглядят примерно так:
12345
5487256
1275
35666693
Строки надо привести к следующему виду:
000012345
005487256
000001275
035666693

Есть идеи? Заранее спасибо!
Просмотров: 7172
 
Непрочитано 07.05.2009, 21:52
#2
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,337


или текстовый формат или выбрать из все форматы
Миниатюры
Нажмите на изображение для увеличения
Название: SpxImage96.jpg
Просмотров: 303
Размер:	44.1 Кб
ID:	20036  
Хмурый вне форума  
 
Непрочитано 07.05.2009, 22:00
#3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,853


Поскольку во втором случае длина строки переменная, придется (опасаюсь) использовать VBA:
Код:
[Выделить все]
Function AddZeros(CellValue As String, MaxLen As Integer) As String
  With ThisWorkbook
    While Len(CellValue) < MaxLen
      CellValue = "0" & CellValue
    Wend
  End With
  AddZeros = CellValue
End Function
В ячейке результата пишется формула
Код:
[Выделить все]
=AddZeros(A1;10)
---
Нда, решение Хмурого, как всегда, просто и изящно...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 07.05.2009, 22:02
#4
Солидворкер
Moderator

Конструктор (машиностроение)
 
Регистрация: 23.10.2006
Россия
Сообщений: 22,998
<phrase 1=


Образец забыл
Вложения
Тип файла: rar 123456.rar (69.8 Кб, 164 просмотров)
Солидворкер вне форума  
 
Непрочитано 07.05.2009, 22:13
#5
Наталья

КЖ / КМ
 
Регистрация: 13.01.2006
Москва
Сообщений: 1,383


Самое интересное, чем выше версия экселя, тем больше нулей он добавляет. У меня версия 2003 года, и добавляется всего 4 цифры. А смотрю, у Хмурого в ответе 6 цифр. Видать версия поновее моей.
__________________
Удивляться нечему. Остаётся только восхищаться.
Наталья вне форума  
 
Непрочитано 07.05.2009, 22:27
#6
AlphaGeo


 
Сообщений: n/a


Ох, и не люблю я этот RC-вид имен ячеек...
Вложения
Тип файла: zip 123456_A.zip (186.5 Кб, 109 просмотров)
 
 
Автор темы   Непрочитано 07.05.2009, 22:28
#7
Солидворкер
Moderator

Конструктор (машиностроение)
 
Регистрация: 23.10.2006
Россия
Сообщений: 22,998
<phrase 1=


Хмурый, а ведь не добавляется нулей... Если создать новые ячейки, то там все в порядке -добавляются, а в те, что уже есть -нет

AlphaGeo, а удочку?
Солидворкер вне форума  
 
Непрочитано 07.05.2009, 22:29
#8
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,337


Наталья, Offtop: сколько нулей в ячейку забьёшь- такой и формат будет.
Хмурый вне форума  
 
Автор темы   Непрочитано 07.05.2009, 22:35
#9
Солидворкер
Moderator

Конструктор (машиностроение)
 
Регистрация: 23.10.2006
Россия
Сообщений: 22,998
<phrase 1=


AlphaGeo, туплю к вечеру, вроде идею ухватил, спасибо!
Солидворкер вне форума  
 
Непрочитано 07.05.2009, 22:38
#10
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Солидворкер Посмотреть сообщение
AlphaGeo, а удочку?
Цитата:
Сообщение от Солидворкер Посмотреть сообщение
AlphaGeo, туплю к вечеру, вроде идею ухватил, спасибо!
Какую удочку? Там все просто функциями... Хотя сам в последнее время предпочитаю использовать VBA: файл весит меньше и обрабатывается быстрее. Но у меня Excel'евские файлы многомегабайтные...
 
 
Непрочитано 07.05.2009, 22:43
#11
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,337


Цитата:
Сообщение от Солидворкер Посмотреть сообщение
Хмурый, а ведь не добавляется нулей... Если создать новые ячейки, то там все в порядке -добавляются, а в те, что уже есть -нет
Извини. Сразу не догнал, что тебе нужно готовую таблицу отформатировать.
Хмурый вне форума  
 
Непрочитано 07.05.2009, 22:45
#12
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,853


Кхек, для варианта форматирования ячейки попробуйте сделать там текст. Или нецелое число поставить
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 07.05.2009, 22:47
#13
Солидворкер
Moderator

Конструктор (машиностроение)
 
Регистрация: 23.10.2006
Россия
Сообщений: 22,998
<phrase 1=


AlphaGeo, спасибо, все получилось!

Добавлено

Есть еще одна проблема. Из столбца, где только числа (12 знаков) надо "выжать" все пробелы

Последний раз редактировалось Солидворкер, 07.05.2009 в 23:09.
Солидворкер вне форума  
 
Непрочитано 08.05.2009, 08:04
#14
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,337


СЖПРОБЕЛЫ(текст) не помогает?

Последний раз редактировалось Хмурый, 08.05.2009 в 08:09.
Хмурый вне форума  
 
Автор темы   Непрочитано 08.05.2009, 08:19
#15
Солидворкер
Moderator

Конструктор (машиностроение)
 
Регистрация: 23.10.2006
Россия
Сообщений: 22,998
<phrase 1=


Цитата:
Сообщение от Хмурый Посмотреть сообщение
СЖПРОБЕЛЫ(текст) не помогает?
Эта функция выкидывает все лишние пробелы, оставляя 1. А мне нужно оставить 0 пробелов. В принципе, я проблему на данном этапе решил, отфильтровав пробелы поиском в блокноте. Но хотелось бы знать, нельзя ли сделать все в Экселе, чтобы не скакать туда-сюда.
Солидворкер вне форума  
 
Непрочитано 08.05.2009, 08:40
#16
witek

Проектирование
 
Регистрация: 26.02.2009
Москва
Сообщений: 35


Разово можно выполнить заменой в заданном диапазоне (ctrl+F, alt+ь, alt+и, пробел, alt+в).

Касательно изменения данных.
ИМХО, лучше сделать исходные данные на одном листе, а результат на другом, чтобы в результирующих ячейках были ссылки на исходные. Это пригодится, например, когда исходные данные являются импортом из какого-нибудь другого приложения. Тогда импорт осуществляется всегда в один и тот же лист, а результат получается автоматом.
Вложения
Тип файла: rar 123456 пробелы.rar (286.4 Кб, 124 просмотров)

Последний раз редактировалось witek, 08.05.2009 в 09:46. Причина: Добавил архив
witek вне форума  
 
Непрочитано 08.05.2009, 10:27
#17
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Солидворкер Посмотреть сообщение
Есть еще одна проблема. Из столбца, где только числа (12 знаков) надо "выжать" все пробелы
А где там пробелы вообще? Я поиском не нашел ни одного пробела в диапазоне данных...
 
 
Автор темы   Непрочитано 08.05.2009, 10:43
#18
Солидворкер
Moderator

Конструктор (машиностроение)
 
Регистрация: 23.10.2006
Россия
Сообщений: 22,998
<phrase 1=


Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
А где там пробелы вообще? Я поиском не нашел ни одного пробела в диапазоне данных...
Я тоже не нашел, а они есть Точнее, там какая-то дрянь, которая выглядит как пробел, но поиском не опознается.
Солидворкер вне форума  
 
Непрочитано 08.05.2009, 10:58
#19
witek

Проектирование
 
Регистрация: 26.02.2009
Москва
Сообщений: 35


Да, действительно там другой символ. Функция КОДСИМВ от этого знака дает значение 160. Пробел это 32, да точно, 32.

Так что для разовой замены комбинация при выделенном диапазоне будет: (ctrl+F, alt+ь, alt+и, alt+0160, alt+в).
witek вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > Форматирование столбца в Excel Дополнение нулями

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Еще раз про Excel mmax Программирование 25 14.01.2010 11:12
Ламерский вопрос по Excel: как сделать, чтобы не слетало форматирование исходных ячеек при вырезании и перетаскивании? kp+ Прочее. Программное обеспечение 7 23.02.2009 15:27