Как сортировать по дате в Excel: хронологически, по месяцам, автосортировка

  • Поделись Этим
Michael Brown

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

Встроенные параметры сортировки Excel являются мощными и эффективными инструментами, но они не всегда работают правильно, когда дело доходит до сортировки дат. В этом руководстве вы узнаете несколько полезных трюков, которые позволят упорядочить Excel по датам осмысленным образом, не испортив ваши данные.

    Как отсортировать даты в хронологическом порядке

    Упорядочить даты в хронологическом порядке в Excel очень просто. Вы просто используете стандартную функцию Сортировка по возрастанию вариант:

    1. Выберите даты, которые вы хотите отсортировать в хронологическом порядке.
    2. На Главная во вкладке Форматы группу, нажмите Сортировка и фильтр и выберите Сортировать от самого старого к самому новому В качестве альтернативы вы можете использовать A-Z опция на Данные во вкладке Сортировка и фильтр группа.

    Как сортировать по дате в Excel

    Параметры сортировки Excel также можно использовать для изменения порядка следования всей таблицы, а не только отдельного столбца. Чтобы отсортировать записи по дате, сохранив строки нетронутыми, главное - развернуть выделение при появлении запроса.

    Вот подробные шаги по сортировке данных в Excel по дате:

    1. В своей электронной таблице выберите даты без заголовка столбца.
    2. На Главная вкладка, нажмите Сортировка и фильтр и выберите Сортировать от самого старого к самому новому .

    3. Сайт Предупреждение о сортировке появится диалоговое окно. Оставьте значение по умолчанию Расширить выбор выбранный вариант, и нажмите кнопку Сортировать :

    Вот и все! Записи были отсортированы по дате, и все строки хранятся вместе:

    Как отсортировать по месяцам в Excel

    Могут возникнуть ситуации, когда вы захотите сортировка дат по месяцам игнорирование года, например, при группировке дат юбилеев ваших коллег или родственников. В этом случае стандартная функция сортировки Excel не будет работать, поскольку она всегда учитывает год, даже если ячейки отформатированы для отображения только месяца или месяца и дня.

    Решение заключается в добавлении вспомогательного столбца, извлечении номера месяца и сортировке по этому столбцу. Чтобы получить месяц из даты, используйте функцию MONTH.

    На скриншоте ниже мы извлекаем номер месяца из даты в B2 с помощью этой формулы:

    = МОНТ(B2)

    Совет. Если результат отображается в виде даты, а не числа, установите параметр Общий формат в ячейки с формулами.

    А теперь отсортируйте вашу таблицу по Месяц Для этого выберите номера месяцев (C2:C8), нажмите кнопку Сортировка и фильтр > Сортировать от наименьшего к наибольшему , а затем разверните выделение, когда Excel попросит вас сделать это. Если все сделано правильно, вы получите следующий результат:

    Обратите внимание, что наши данные теперь сортируются по месяцам, игнорируя годы и дни внутри каждого месяца. Если вы хотите сортировка по месяцу и дню , затем следуйте инструкциям из следующего примера.

    Если названия месяцев введены как текст , затем отсортировать по пользовательскому списку, как описано в этом примере.

    Как отсортировать дни рождения в Excel по месяцу и дню

    При упорядочивании дат для календаря дней рождения оптимальным решением будет сортировка дат по месяцам и дням. Следовательно, вам нужна формула, которая будет извлекать месяцы и дни из дат рождения.

    В этом случае пригодится функция Excel TEXT, которая может преобразовать дату в текстовую строку в указанном формате. Для нашей цели подойдет код формата "mmdd" или "mm.dd".

    При исходной дате в B2 формула принимает следующий вид:

    =TEXT(B2, "мм.дд")

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

    Того же результата можно достичь, используя формулу DATE следующим образом:

    =ДАТА(2000, МЕСЯЦ(B2),ДЕНЬ(B2))

    Формула генерирует список дат, извлекая месяц и день из фактической даты в B2 и заменяя настоящий год фальшивым, 2000 в данном примере, хотя вы можете поставить любой. Идея заключается в том, чтобы иметь один и тот же год для всех дат, а затем отсортировать список дат в хронологическом порядке. Поскольку год один и тот же, даты будут отсортированы по месяцу и дню, что является именно тем, что вам нужно.ищет.

    Как отсортировать данные по годам в Excel

    Когда речь идет о сортировке по годам, проще всего расположить даты в хронологическом порядке с помощью сортировки Excel по возрастанию ( От самого старого к самому новому ) вариант.

    Это позволит отсортировать даты по году, затем по месяцу, а затем по дню, как показано на скриншоте ниже.

    Если по какой-то причине вас не устраивает такое расположение, то вы можете добавить вспомогательный столбец с формулой YEAR, которая извлекает год из даты:

    = ГОД(C2)

    После сортировки данных по Год столбца, вы заметите, что даты отсортированы только по году, игнорирование месяцев и дней .

    Совет. Если вы хотите сортировать даты по дням без учета месяцев и лет, извлечь день с помощью функции DAY, а затем отсортировать по День колонна:

    =DAY(B2)

    Как сортировать по дням недели в Excel

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

    Для недели, которая начинается с воскресенья (1) по субботу (7), можно использовать следующую формулу:

    =WEEKDAY(A2)

    Если ваша неделя начинается с понедельника (1) по воскресенье (7), то это то, что нужно:

    =WEEKDAY(A2, 2)

    Где A2 - ячейка, содержащая дату.

    Для данного примера мы использовали первую формулу и получили такой результат:

    В случае, если названия дней недели введены как текст но не как даты, то используйте функцию Custom Sort, как описано в следующем примере.

    Как отсортировать данные в Excel по названиям месяцев (или дней недели)

    В случае, если у вас есть список названий месяцев в виде текст но не как даты, отформатированные для отображения только месяцев, применение сортировки Excel по возрастанию может стать проблемой - она расположит названия месяцев в алфавитном порядке вместо сортировки по порядку месяцев с января по декабрь. В этом случае поможет пользовательская сортировка:

    1. Выберите записи, которые вы хотите отсортировать по названию месяца.
    2. На Данные во вкладке Сортировка и фильтр группу, нажмите Сортировать .
    3. В Сортировать диалогового окна, выполните следующие действия:
      • Под Колонка , выберите имя столбца, содержащего названия месяцев.
      • Под Сортировать по выберите Значения ячеек .
      • Под Заказ , выберите Пользовательский список .
    4. В Пользовательские списки В диалоговом окне выберите либо полные названия месяцев ( Январь , Февраль , Март , ...) или короткие имена ( Ян , Февраль , Мар ...) в зависимости от того, как месяцы перечислены в вашем рабочем листе:

  • Нажмите OK дважды, чтобы закрыть оба диалоговых окна.
  • Готово! Ваши данные были отсортированы по названию месяца в хронологическом, а не в алфавитном порядке:

    Совет. Чтобы отсортировать по названия дни недели выберите либо полные имена ( Воскресенье , Понедельник , Вторник , ...) или короткие имена ( Солнце , Пн , Tue ...) в Пользовательские списки диалоговое окно.

    Как выполнить автоматическую сортировку по дате в Excel

    Как вы убедились, функция сортировки Excel справляется с различными задачами. Единственный недостаток - она не является динамической. То есть вам придется заново сортировать данные при каждом изменении и добавлении новой информации. Возможно, вы задаетесь вопросом, есть ли способ автоматически сортировать данные при добавлении новой даты, чтобы ваши данные всегда были в порядке.

    Лучший способ добиться этого - использовать макрос. Ниже приведена пара примеров кода для автоматической сортировки следующих данных по дате в хронологическом порядке.

    Макрос 1: Автоматическая сортировка при каждом изменении рабочего листа

    Этот макрос выполняется каждый раз, когда происходит изменение в любом месте рабочего листа.

    Предполагается, что ваши данные находятся в столбцах с A по C, а даты, по которым вы хотите сортировать, находятся в столбце C, начиная с C2. Также предполагается, что строка 1 содержит заголовки (Header:=xlYes). Если ваши записи находятся в разных столбцах, то сделайте следующие корректировки:

    • Измените ссылку A1 на верхнюю левую ячейку целевого диапазона (включая заголовки).
    • Измените ссылку C2 на самую верхнюю ячейку, содержащую дату.
    Private Sub Worksheet_Change( ByVal Target As Range) On Error Resume Next Range( "A1" ).Sort Key1:=Range( "C2" ), _ Order1:=xlAscending, Header:=xlYes, _ OrderCustom:=1, MatchCase:= False , _ Orientation:=xlTopToBottom End Sub

    Макрос 2: Автоматическая сортировка при внесении изменений в определенный диапазон

    Если вы работаете с огромным рабочим листом, содержащим большое количество информации, повторная сортировка при абсолютно любом изменении на листе может оказаться проблематичной. В этом случае имеет смысл ограничить срабатывание макроса изменениями, происходящими в определенном диапазоне. Следующий код VBA сортирует данные только при изменении в столбце C, содержащем даты.

    Private Sub Worksheet_Change( ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range( "C:C" )) Is Nothing Then Range( "A1" ).Sort Key1:=Range( "C2" ), _ Order1:=xlAscending, Header:=xlYes, _ OrderCustom:=1, MatchCase:= False , _ Orientation:=xlTopToBottom End If End Sub

    Совет. Эти макросы можно использовать для автоматической сортировки по любой тип данных В наших примерах коды сортируют в порядке возрастания. Если вы хотите сортировка по убыванию , измените Order1:=xlAscending на Order1:=xlDescending.

    Как добавить макрос в рабочий лист

    Поскольку оба макроса запускаются автоматически при изменении рабочего листа, код следует вставить в лист, на котором вы хотите отсортировать данные (в данном примере - Лист1). Вот как это сделать:

    1. Нажмите Alt + F11, чтобы открыть редактор VBA.
    2. В Исследователь проектов слева, дважды щелкните лист, на котором вы хотите выполнить автоматическую сортировку.
    3. Вставьте код в окно Код.

    Автоматическая сортировка дат с помощью формулы

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

    =IFERROR(INDEX($A$2:$A$20, MATCH(ROWS($A$2:A2), COUNTIF($A$2:$A$20, "<="&$A$2:$A$20), 0)), "")

    Где A2:A20 - исходные (несортированные) даты, включая несколько пустых ячеек для возможных новых записей.

    Введите формулу в пустую ячейку рядом со столбцом с исходными датами (C2 в нашем примере) и нажмите одновременно клавиши Ctrl + Shift + Enter, чтобы завершить ее. Затем перетащите формулу вниз в оставшиеся ячейки (C2:C20 в нашем случае).

    Совет. Чтобы вновь добавленные даты сортировались автоматически, убедитесь, что в указанном диапазоне имеется достаточное количество пустых ячеек. Например, наш список дат находится в диапазоне A2:A7, но мы вводим в формулу $A$2:$A$20 и заполняем ими ячейки с C2 по C20. Функция IFERROR предотвращает ошибки в дополнительных ячейках, возвращая вместо них пустую строку ("").

    Сортировка по дате в Excel не работает

    Если ваши даты сортируются не так, как нужно, скорее всего, они введены в формате, который Excel не может понять, поэтому они воспринимаются как текстовые строки, а не даты. В следующем руководстве объясняется, как отличить так называемые "текстовые даты" и преобразовать их в обычные даты Excel: Как преобразовать текст в дату в Excel.

    Вот как сортировать по дате в Excel. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

    Доступные загрузки

    Примеры формулы сортировки по дате (файл .xlsx)

    Макрос автоматической сортировки (файл.xlsm)

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.