Пытается отсортировать по дате, но поле совпадения группы - PullRequest
0 голосов
/ 24 октября 2018

Я задавал разные вопросы и ответы и, похоже, не могу найти тот, который соответствует моей ситуации.

У меня есть большой список данных (заказы на продажу), где мы можем получить несколько продажзаказы для одного и того же клиента.Я пытаюсь отсортировать весь список по дате, но затем сгруппировать все заказы для одного и того же клиента, чтобы новые заказы выдвигались вместе с самым старым заказом на продажу для этого клиента.Ключ в том, что мы сначала работаем с клиентами с самым старым заказом на продажу, поэтому я не хочу просто сортировать по клиенту, а затем по дате.Я не уверен, как добраться туда, куда мне нужно идти.Любые предложения?

На рисунке в ссылке ниже показан текущий и желаемый выход.

Example of current and desired output

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

При работе с пользовательской сортировкой, подобной этой, я всегда пытаюсь создать столбец «помощник»:

В этом случае я сначала создал справочную таблицу для ранжирования клиентов.Для этого я скопировал данные на другой лист и отсортировал по дате заказа.Затем я использовал команду «Удалить дубликаты» (выбрав в качестве критерия только «Имя клиента») и, наконец, добавил новый столбец «Ранг».

После этого я добавил вспомогательный столбец в исходную таблицу и заполнил Vlookup.Сортировка по дате заказа, затем по рангу, и это сработало!

Example

Вы можете выбрать «Запись макроса», чтобы автоматизировать большую часть этого для будущих таблиц.Надеюсь, это помогло!

0 голосов
/ 24 октября 2018

Не имея данных для игры, это моя лучшая попытка.Выделите всю таблицу перед запуском подпрограммы, и она сначала будет отсортирована по столбцу C, а затем по столбцу A.

Sub sort()
Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range("A2") _
        , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom
End Sub

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

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