Макрос для сортировки алфавитных чисел + числа со специальными случаями

user6567125 спросил: 13 июня 2018 в 05:39 в: excel

Мне сложно сортировать что-то, мне нужно для моего рабочего пространства.

TBK1872(2)
TKP1880
TKP1898(2)+1
TKP190
TKP1911
TKP2006-1
TKP2103(2)
TKP2195(2)+1
TKP310(2)
TKP32
TKP32+1
TKQ1267
TKQ13
TKQ138(2)

Это подписи мне нужно заказать определенным образом.

Прежде всего, эти подписи должны быть упорядочены, чтобы они были в алфавитном порядке. Есть те случаи, когда может случиться, что вместо этого есть четыре буквы из трех. Это должно произойти после трех букв

Пример: TQL, после чего для букв типа TQLA, затем TQLB и так далее on ...

Затем числа должны быть отсортированы после того, как короткие они равны двум числам, а затем три числа, а затем для чисел, не похожих на обычный вид:

TKP310(2)
TKP32
TKP32+1
TKQ1267
TKQ13

, где числа сортируются по максимуму второго числа.

После этого существуют те особые случаи, когда происходит (2) или +1 или комбинация обоих. Эти данные должны сортироваться после номера в скобках, а затем после того, как число +1 начинается с 1

Можно ли в любом случае написать n алгоритм сортировки для этого? Может кто-нибудь мне помочь? Я бы очень признателен.


1 ответ

ashleedawg ответил: 13 июня 2018 в 09:21

Вы можете использовать сложный порядок сортировки для сортировки в нечетном (или специальном) порядке, путем импорта списка всех значений в порядке, вы хотите его.

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


Со встроенными пользовательскими списками , вы можете сортировать данные - либо по дням недели, либо месяцам года. При желании вы можете создавать свои собственные списки для сортировки по любому другому признаку, который не сортируется в алфавитном порядке, например, высокий, средний и низкий - или S, M, L, XL.

Например , с помощью пользовательских списков вы можете сортировать этот рабочий лист по расписанию (месяц) или по приоритету.

Например, чтобы сортировать по дням недели или месяцам года со встроенным пользовательским списком, вы делаете следующее:

  1. Выберите столбцы, которые хотите сортировать . Для достижения наилучших результатов каждый столбец должен иметь заголовки.

  2. На ленте нажмите Данные > ; Сортировка:

  3. В диалоговом окне Сортировка в поле Сортировка, выберите столбец , который вы хотите отсортировать по:

  4. В раскрывающемся меню Заказ выберите Пользовательский Список:

  5. В Пользовательские списки , выберите нужный вам список и нажмите OK, чтобы отсортировать рабочий лист:


  1. В столбце рабочего листа введите значения для сортировки по , Расположите их в том порядке, в котором вы хотите определить порядок сортировки - сверху вниз. Например:

  2. Выберите ячейки в этом списке и нажмите Файл > Параметры > Дополнительно.

  3. В Общие нажмите Изменить пользовательские списки.

  4. В поле Пользовательские списки нажмите Импорт :


  • Дополнительные примеры, информацию и ресурсы можно найти по адресу: источник.

Дополнительное видео по вопросу: Макрос для сортировки алфавитных чисел + числа со специальными случаями

Программирование макросов на VBA в Excel

Сортировка данных методом наименьшего элемента: программирование на VBA

УРОК 4. Макросы. Пишем код полностью с нуля. Академия Excel