Существует файл Excel 2016 с данными о некоторых событиях, основной лист содержит идентификатор и дату каждого события, например:

ID  Date
1   2017-10-02
2   2017
3   2017-09
4   2017-09-25
…   etc.

Большинство дат включают год, месяц и день, но для некоторых точный день неизвестен, а некоторые с точностью до года.

На другом листе я хочу, чтобы этот диапазон сортировался по дате (сначала самой новой) в соответствии с этим алгоритмом:

  1. Во-первых, все события с полными датами сортируются как обычно.
  2. Во-вторых, для любого события, имеющего только месяц, оно вставляется в середину этого месяца: не в 15-й день, а между первой и последней половиной уже отсортированных событий.
  3. В-третьих, для любого события, имеющего только год, оно вставляется в середину этого года, аналогично пункту 2.

Можно ли добиться этого с помощью формул Excel без VBA и (очень важно!) не назначая фальшивые месяцы и дни на события, где они отсутствуют?

1 ответ1

0

Поскольку вам необходимо решение не VBA, поэтому я хотел бы предложить вам самое простое решение, и для его достижения необходимо выполнить следующие шаги.

Первая часть

  1. Выберите весь диапазон данных.

  2. Сортируйте их в порядке возрастания даты.

  3. Наконец примените фильтр.

Проверьте снимок экрана,

Обратите внимание, что в последней строке указан только год (2017), для этого форматирования ячеек в качестве текста, поскольку Excel не позволяет писать ТОЛЬКО ГОД в ячейке.

Часть вторая,

  1. Данные первого фильтра имеют значение FULL DATE.

  2. Скопируйте и вставьте отфильтрованные данные в другое место.

  3. Следующий фильтр данных имеет месяц и год, скопируйте и вставьте их также в другое место.

  4. Наконец, фильтруйте данные только по году, копируйте и вставляйте их тоже.

Ваши отфильтрованные данные выглядят как скриншот ниже.

Обратите внимание, что если вам не нужно разделять Данные, в этом случае ЧАСТЬ ВТОРАЯ не требуется, потому что после ЧАСТИ ОДНОЙ вы получаете Данные в желаемом порядке.

Я верю, что это решение поможет вам, если не просто оставить комментарий.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .