Страница 1 из 1

макрос на разделение данных в Excel

Добавлено: 14 апр 2009, 20:55
linxy_2008
Здравствуйте!
Помогите мне решить одну задачу в Excel.
У меня есть огромная таблица из 2000 строк.
В ней есть столбец с названием "Срок действия" и данные записаны в нем так: 02.06.2008-02.06.2011
Мне бы не хотелось вручную разделять эти данные (2000 строк в таблице),а написать такой макрос:
Чтобы при добавлении в эту таблицу новых таких данных он разделял эти данные на две колонки.
Например, колонка "срок действия" осталась бы и в ней осталась бы одна дата: 02.06.2008, а другая дата перенеслась в соседний столбец, при этом удалилось тире и пробел.

Есть ли решение этой проблемы? Я пыталась написать макрос, но у меня он распространяется только на одну ячейку, а не на столбец целиком, где присутствуют сдвоенные данные.

Re: макрос на разделение данных в Excel

Добавлено: 14 апр 2009, 21:07
Naeel Maqsudov
Вам не нужны макросы.
Вставьте 1 пустой столбец после этого столбца (меню вставка/столбцы)
Выделите все такие даты и просто разделите их на 2 столбца (менб Данные/Текст по столбцам). Там запускается мастер. На 1 шаге выберите "С разделителями", на второй - "Другой" и введите "-".
Это всё.

Re: макрос на разделение данных в Excel

Добавлено: 14 апр 2009, 21:54
linxy_2008
Спасибо большое!
Все получилось. Только при разделении этих данных некоторые данные не перенеслись. Например: из колонки с содержимым 02.02.2008-02.2011 вторая часть удалилась, но не перенеслась в соседнюю.
Т.е. разделение произошло, но не во всех строках

Re: макрос на разделение данных в Excel

Добавлено: 14 апр 2009, 22:27
Naeel Maqsudov
Ну значит данные так были подготовлены.
Повнимательнее посмотрите, если около дефиса есть пробелы, а в качестве разделителя помимо "другой" был также выбран пробел, то может такое получиться.
&quot писал(а):удалилась, но не перенеслась в соседнюю
Хм... Не думаю, что такое вообще возможно. Excel так не поступает. Можно взглянуть на исходные данные?

Re: макрос на разделение данных в Excel

Добавлено: 16 апр 2009, 09:00
airyashov
или написать формулы
=ЛЕВСИМВ(СЖПРОБЕЛЫ(A1);10)
=ПРАВСИМВ(СЖПРОБЕЛЫ(A1);10)