Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2013, 16:40   #1
Holidays
Новичок
Джуниор
 
Регистрация: 26.03.2013
Сообщений: 1
По умолчанию Макрос на выборку

Добрый день, уважаемые программисты!
Нам необходимо в таблице excel отсортировать столбец А(номер) и В(сумма,привязанная к номеру).
Это выглядит следующим образом:
10000000/010113/0000005 459573,26
1часть№ Дата 2часть№
Список очень длинный.

Нужно написать макрос для того, чтобы он сортировал только по середине номера (/010113/ - это дата). Дата, в зависимости от месяца будет меняться. 1 и 2 часть № тоже менятеся. При этом сумма, должна быть привязана к номеру.

Помогите, пожалуйста!
Заранее спасибо!
Holidays вне форума Ответить с цитированием
Старый 26.03.2013, 17:02   #2
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Вариант без макросов (просто я бы всё-равно сортировку делал бы на Excel-листе, т.к. мне сложно было бы сделать сортировку VBA-средствами - там знания нужны) (Excel 2010):
  1. копируете полностью столбец, который содержит данные такого вида:
    10000000/010113/0000005
    в другой столбец;
  2. выделяете столбец, в который скопировали;
  3. вкладка Данные - группа Работа с данными - Текст по столбцам;
  4. ставите кружок с разделителями - Далее;
  5. убираете все флажки и ставите флажок Другие - в поле пишите символ:
    /
  6. Далее - Образец разбора данных:
    1. щёлкните по среднему столбцу (в нём дата) - Формат данных столбца - поставьте кружок дата;
    2. щёлкните по первому столбцу (он нам не нужен) - Формат данных столбца - поставьте флажок пропустить. То же сделайте и для третьего столбца;
  7. Готово;
  8. получится один столбец;
  9. проведите обычную сортировку, какую вы делали раньше, по этому столбцу;
  10. после сортировки удалите этот столбец.

Примечание

Столбец можно не копировать специально, а при разбивке на столбцы, на шаге 3 указать место, куда вставить данные.

Последний раз редактировалось Скрипт; 27.03.2013 в 07:06.
Скрипт вне форума Ответить с цитированием
Старый 26.03.2013, 21:49   #3
ShAM66
Форумчанин
 
Регистрация: 24.02.2012
Сообщений: 160
По умолчанию

Предложу формульный вариант (в столбец С):
Код:
=ДАТА(ПСТР(A1;ПОИСК("/";A1)+5;2);ПСТР(A1;ПОИСК("/";A1)+3;2);ПСТР(A1;ПОИСК("/";A1)+1;2))
Сортируем по С, удаляем С.

ЗЫ: Правда год получится 1913, а не 2013, но для сортировки это не проблема (если нет годов 19..).

Последний раз редактировалось ShAM66; 27.03.2013 в 21:43.
ShAM66 вне форума Ответить с цитированием
Старый 26.03.2013, 22:08   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

вариант формулы
Код:
=ДАТАЗНАЧ(ТЕКСТ(ПСТР(A1;ПОИСК("/";A1)+1;6);"0\.00\.00"))
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на выборку leri_leri SQL, базы данных 2 30.11.2012 15:38
Запрос на выборку ...Оленька... SQL, базы данных 1 20.12.2010 20:13
Запрос на выборку pobedin SQL, базы данных 7 12.12.2010 19:16
С# Запрос на выборку fobass Общие вопросы .NET 2 04.02.2010 14:26
Запрос на выборку Ruska882009 Microsoft Office Access 2 26.02.2009 20:39