Предварительная сортировка в Excel - PullRequest
0 голосов
/ 21 февраля 2019

На нашем складе у нас есть четная / нечетная система локаций.

вот пример:

1-101-1
1-103-1
1-105-1
....
1-285-1

и

2-102-1
2-104-1
2-116-1
2-240-1
....
2-286-1

и тоже есть уровни

1-101-2
1-101-3
1-101-4

там много данных, и мне нужна сортировка так:

пример чисел:

1-101-1
2-130-1
1-131-1
1-150-2
2-132-3
3-229-5
4-262-1
4-286-5
7-267-1
5-239-1
6-270-1
7-267-3

Мне нужна сортировка так:

1-101-1
2-130-1
1-131-1
2-132-3
4-286-5
4-262-1
3-229-5
5-239-1
6-270-1
7-267-1
7-267-1

точка - это первые два числа ( 1 -101-1; 2 -102-1) идет от наименьшего к большему, следующие два ( 3 * 1025)* -285-1; 4 -286) идет от самого большого к наименьшему, а 5 - 6 снова идет от наименьшего к наибольшему, и с этой системой до конца

вторая вещь для сортировки - средняячисло, это число будет идти сначала от наименьшего к наибольшему, затем от наибольшего к наименьшему, а последнее число будет уровнем, то же, что и уровень 1, но должно быть отсортировано по уровню один или близко к уровню 1, если имеется 7-267-1 и 7-267-3

есть ли решение?спасибо

редактировать:

вот изображение для облегчения понимания, потому что это трудно объяснить

Спасибо всем за ответы, особенно Даниэль, который является экспертомв Excel и понимаю, что мне нужно.

Я имею в виду, что нет такого решения без VBA, но Дэниел покажет мне, что я был неправ.Еще раз спасибо.

Это то, что мне нужно, но есть некоторые ошибки, если вы можете помочь мне с этим

, это другой пример с другими местоположениями:

это несортированные местоположения с формулами, которые вы мне даете

и это отсортировано, но с плохим порядком:

плохая сортировка

ивот с ошибками:

ошибки

у нас есть 120 строк, и числа больше 99 отображают ошибку, а число 22-250-1 идет в -25 в секундуrow

Я пробую формулу с числами, которые вы вводите в этом примере, и я получил такую ​​же хорошую сортировку, как и вы, но после входа в другие места есть какая-то плохая сортировка.

1 Ответ

0 голосов
/ 22 февраля 2019

Добро пожаловать в StackOverflow!

Мне кажется, я понимаю, что запрашивается.Это немного сложно объяснить, но я попробую.

Первичная сортировка должна быть следующей:

  1. Если первая цифра либо 3, либо 4, то он должен быть в порядке убывания, иначе в порядке возрастания.
  2. Если средние 3-значные цифры представляют собой последовательность 3 или 4 (см. № 1 выше), то средняя пара должна находиться вв порядке убывания.
  3. Все последовательности должны быть в порядке возрастания на основе их последней цифры.

Мое решение разбивает последовательность на отдельные столбцы:

Например, создайте тристолбцы: First, Second, Third.

Формула для First:

=INT(LEFT(A2, 1))

Формула для Second:

=INT(RIGHT(LEFT(A2,5), 3))

Формула для Third:

=INT(RIGHT(A2,1))

Далее мы присваиваем значения для сортировки этих трех полей:

Создаем столбец с меткой First_Sort_Pair:

=IF(OR(B2=1,B2=2),1, IF(B2=3,3, IF(B2=4,2, IF(OR(B2=5,B2=6),4, IF(OR(B2=7,B2=8),5,6)))))

Создать столбец с пометкой First_Sort:

=IF(OR(B2=3, B2=4), 2, 1)

Создать столбец с меткой Second_Sort:

=IF(E2=4, 2, IF(E2=3, 3, 1))

Создайте столбец с меткой Sort_3_4:

=IF(OR(B2=3,B2=4),RANK(C2,C:C,0),)

Теперь вы можете начать сортировку: [Advanced Sorting[1]

Результат:

Теперь ваши данные будут отсортированы по назначению: Advanced Sorting Results

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...