Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/сортировка по алфавиту, возрастанию с учетом разделителей - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » сортировка по алфавиту, возрастанию с учетом разделителей (Формулы/Formulas)
сортировка по алфавиту, возрастанию с учетом разделителей
kefirrr Дата: Среда, 08.10.2014, 18:18 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, форумчане.
Очень надеюсь на вашу помощь.
суть проблемы такова:
есть файл с индексами типа ХХХ-ХХХ-ХХХ. нужно отсортировать эти индексы по возрастанию, и по алфавиту. Есть похожая тема http://www.excelworld.ru/forum/2-7354-1
, но в моей ситуации разница в том, что есть разделители. и необходимо отсортировать с учетом этих разделителей (т.е. вначале с наименьшим кол-вом).
Можно ли как-нибудь это реализовать с помощью макроса или формулы (хотя , мне кажется, формула будет просто гигантской).
К сообщению приложен файл: 5241924.xls (40.0 Kb)


Сообщение отредактировал kefirrr - Среда, 08.10.2014, 19:44
 
Ответить
СообщениеДобрый день, форумчане.
Очень надеюсь на вашу помощь.
суть проблемы такова:
есть файл с индексами типа ХХХ-ХХХ-ХХХ. нужно отсортировать эти индексы по возрастанию, и по алфавиту. Есть похожая тема http://www.excelworld.ru/forum/2-7354-1
, но в моей ситуации разница в том, что есть разделители. и необходимо отсортировать с учетом этих разделителей (т.е. вначале с наименьшим кол-вом).
Можно ли как-нибудь это реализовать с помощью макроса или формулы (хотя , мне кажется, формула будет просто гигантской).

Автор - kefirrr
Дата добавления - 08.10.2014 в 18:18
Serge_007 Дата: Среда, 08.10.2014, 18:49 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Где файл?
Где данные?
Где разделители?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеГде файл?
Где данные?
Где разделители?

Автор - Serge_007
Дата добавления - 08.10.2014 в 18:49
kefirrr Дата: Среда, 08.10.2014, 19:44 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Файл подкрепила
 
Ответить
СообщениеФайл подкрепила

Автор - kefirrr
Дата добавления - 08.10.2014 в 19:44
AndreTM Дата: Четверг, 09.10.2014, 15:39 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Немного непонятна логика самой сортировки...
Почему у вас 6-2ПУ > 6-1СС - по числу 2? тогда почему 6-2ПУ > 6-15Я ?
И почему П-350 > 4П-184 ?
Приведите более содержательный пример или полное описание порядка сортировки.

В любом случае, макросом сделать ключ для сортировки, с помощью регэкспов, - достаточно легко.


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеНемного непонятна логика самой сортировки...
Почему у вас 6-2ПУ > 6-1СС - по числу 2? тогда почему 6-2ПУ > 6-15Я ?
И почему П-350 > 4П-184 ?
Приведите более содержательный пример или полное описание порядка сортировки.

В любом случае, макросом сделать ключ для сортировки, с помощью регэкспов, - достаточно легко.

Автор - AndreTM
Дата добавления - 09.10.2014 в 15:39
kefirrr Дата: Четверг, 09.10.2014, 23:31 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Сначала идут все индексы с 1 тире. И они подчиняются следующему: сначала цыфры, потом буквы. Поэтому и 4П-184 идет ранее нежели П-350
тоже самое и с 6-2ПУ, 6-1СС (Здесь Вы правы, я недосмотрела).
Сортировка сначала идет по 6, затем сортирует символы после "-". Т.Е. сначала идет 1СС, затем 2ПУ, и как вы правильно заметили, должно идти 6-2ПУ и затем 6-15Я

Что значит "ключ" для сортировки, и "регэспы" ?

Прикрепляю файл, где приведены мои начинания в этом направлении.
Я опиралась следующему алгоритму:
1) Определить кол-во "-", для понимания того, какие индексы должны стоять сначала
2) разделяла индекс на столбцы (разделителем был знак - )
'---------------- дальше работала только с индексами с 1 тире
3) сортирую первую часть по алфавиту, переписываю заново индекс, чтобы не потерять данные (применяя формулу из вышеупомянутой схожей темы)
4) сортирую 2-ю часть индекса

На этом пока остановилась, Потому что окончательно запуталась. :)
К сообщению приложен файл: 6976125.xls (38.5 Kb)


Сообщение отредактировал kefirrr - Четверг, 09.10.2014, 23:33
 
Ответить
СообщениеДобрый день.
Сначала идут все индексы с 1 тире. И они подчиняются следующему: сначала цыфры, потом буквы. Поэтому и 4П-184 идет ранее нежели П-350
тоже самое и с 6-2ПУ, 6-1СС (Здесь Вы правы, я недосмотрела).
Сортировка сначала идет по 6, затем сортирует символы после "-". Т.Е. сначала идет 1СС, затем 2ПУ, и как вы правильно заметили, должно идти 6-2ПУ и затем 6-15Я

Что значит "ключ" для сортировки, и "регэспы" ?

Прикрепляю файл, где приведены мои начинания в этом направлении.
Я опиралась следующему алгоритму:
1) Определить кол-во "-", для понимания того, какие индексы должны стоять сначала
2) разделяла индекс на столбцы (разделителем был знак - )
'---------------- дальше работала только с индексами с 1 тире
3) сортирую первую часть по алфавиту, переписываю заново индекс, чтобы не потерять данные (применяя формулу из вышеупомянутой схожей темы)
4) сортирую 2-ю часть индекса

На этом пока остановилась, Потому что окончательно запуталась. :)

Автор - kefirrr
Дата добавления - 09.10.2014 в 23:31
AndreTM Дата: Пятница, 10.10.2014, 00:59 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Ага... Все равно немного непонятно, но хоть что-то.

Посмотрите пример. Реализовано с помощью макросов, проделывающих те самые действия, что вам требуются.
И, прежде чем задавать вопросы - попробуйте все же хоть немного понять, что там происходит. :)

P.S. Естественно, можно не выгружать "ключ сортировки" в явном виде на лист, а, создав его, сразу отсортировать и вернуть пользователю только сами исходные данные...
К сообщению приложен файл: 2-13460-1-1.xls (60.5 Kb)


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Пятница, 10.10.2014, 01:01
 
Ответить
СообщениеАга... Все равно немного непонятно, но хоть что-то.

Посмотрите пример. Реализовано с помощью макросов, проделывающих те самые действия, что вам требуются.
И, прежде чем задавать вопросы - попробуйте все же хоть немного понять, что там происходит. :)

P.S. Естественно, можно не выгружать "ключ сортировки" в явном виде на лист, а, создав его, сразу отсортировать и вернуть пользователю только сами исходные данные...

Автор - AndreTM
Дата добавления - 10.10.2014 в 00:59
kefirrr Дата: Пятница, 10.10.2014, 01:30 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
AndreTM. ОГРОМНОЕ СПАСИБО! Работает. Я в начале пути познавания VBA, поэтому код я Ваш не поняла (у Вас все расписано, просто я раньше с этими командами не встречалась). Попробую вникнуть.

Небольшая просьба, а можно сделать так, чтобы индексы с 1 разделителем сортировались по такому же принципу как и с 2 разделителями (т.е. 1УК и 12 УК стояли рядом, и тоже самое для П-350, П-351, П-352, 4П-184 ). Или направьте в нужное русло по вашему коду, а то без знаний принципа работы той или иной функции буду долго разбираться
 
Ответить
СообщениеAndreTM. ОГРОМНОЕ СПАСИБО! Работает. Я в начале пути познавания VBA, поэтому код я Ваш не поняла (у Вас все расписано, просто я раньше с этими командами не встречалась). Попробую вникнуть.

Небольшая просьба, а можно сделать так, чтобы индексы с 1 разделителем сортировались по такому же принципу как и с 2 разделителями (т.е. 1УК и 12 УК стояли рядом, и тоже самое для П-350, П-351, П-352, 4П-184 ). Или направьте в нужное русло по вашему коду, а то без знаний принципа работы той или иной функции буду долго разбираться

Автор - kefirrr
Дата добавления - 10.10.2014 в 01:30
AndreTM Дата: Пятница, 10.10.2014, 01:47 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
1УК и 12 УК стояли рядом
А почему тогда 6-1ЯА < 6-2ПУ < 6-15Я? Тогда 12УК в любом случае стоит после предыдущих цифр.

тоже самое для П-350, П-351, П-352, 4П-184
сначала цыфры, потом буквы. Поэтому и 4П-184 идет ранее нежели П-350
Значит, и 9П-300, и 11Я-400 - тоже должны идти ранее, чем просто П-350...

Так что непоняточки :)

направьте в нужное русло по вашему коду, а то без знаний принципа работы той или иной функции буду долго разбираться
Какие принципы работы? Для каждой функции есть хелп и гугл, куда ещё дальше направлять-то?
А код там настолько же прост (ну, что я могу поделать-то? прост ведь...), насколько сложно его объяснить словами yes
[offtop]Ну вот... представьте себе стакан. ВСЕ видели стакан. А также обоняли, осязали и лизали. А теперь попробуйте объяснить простыми словами, что такое "стакан", если у вас его нет, но вы давно привыкли им пользоваться. Причем объяснить тому, кто не хочет видеть, слышать и т.д.[/offtop]


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Пятница, 10.10.2014, 01:54
 
Ответить
Сообщение
1УК и 12 УК стояли рядом
А почему тогда 6-1ЯА < 6-2ПУ < 6-15Я? Тогда 12УК в любом случае стоит после предыдущих цифр.

тоже самое для П-350, П-351, П-352, 4П-184
сначала цыфры, потом буквы. Поэтому и 4П-184 идет ранее нежели П-350
Значит, и 9П-300, и 11Я-400 - тоже должны идти ранее, чем просто П-350...

Так что непоняточки :)

направьте в нужное русло по вашему коду, а то без знаний принципа работы той или иной функции буду долго разбираться
Какие принципы работы? Для каждой функции есть хелп и гугл, куда ещё дальше направлять-то?
А код там настолько же прост (ну, что я могу поделать-то? прост ведь...), насколько сложно его объяснить словами yes
[offtop]Ну вот... представьте себе стакан. ВСЕ видели стакан. А также обоняли, осязали и лизали. А теперь попробуйте объяснить простыми словами, что такое "стакан", если у вас его нет, но вы давно привыкли им пользоваться. Причем объяснить тому, кто не хочет видеть, слышать и т.д.[/offtop]

Автор - AndreTM
Дата добавления - 10.10.2014 в 01:47
kefirrr Дата: Пятница, 10.10.2014, 16:43 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Признаюсь честно, мозги маленько закипели от попытки понимания кода.. НО... не без результатно :) а это очень радует.
Разобралась, конечно не до конца, но зато узнала про регулярные выражения.

ЗА ЧТО ВАМ ВСЕМ ОГРОМНОЕ СПАСИБО.


подкорректировала немножко Ваш код, чтобы получить данные для своей сортировки
К сообщению приложен файл: 8204680.xls (73.0 Kb)


Сообщение отредактировал kefirrr - Пятница, 10.10.2014, 16:44
 
Ответить
СообщениеПризнаюсь честно, мозги маленько закипели от попытки понимания кода.. НО... не без результатно :) а это очень радует.
Разобралась, конечно не до конца, но зато узнала про регулярные выражения.

ЗА ЧТО ВАМ ВСЕМ ОГРОМНОЕ СПАСИБО.


подкорректировала немножко Ваш код, чтобы получить данные для своей сортировки

Автор - kefirrr
Дата добавления - 10.10.2014 в 16:43
Мир MS Excel » Вопросы и решения » Вопросы по Excel » сортировка по алфавиту, возрастанию с учетом разделителей (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!