Перейти к содержимому

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

Author: Xiaoyang Last Modified: 2025-08-07

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

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

Автоматическая сортировка дат при вводе или изменении с использованием кода VBA


arrow blue right bubble Автоматическая сортировка дат при вводе или изменении с помощью формулы

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

1. Введите эту формулу:

=INDEX($A$2:$A$15,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$15,"<="&$A$2:$A$15),0)) в пустую ячейку рядом с вашим столбцом дат, например C2, а затем нажмите клавиши Ctrl + Shift + Enter вместе, чтобы получить числовую последовательность. Затем перетащите маркер заполнения вниз до нужных ячеек. См. скриншот:

Примечание: В приведенной выше формуле A2:A15 — это ваш исходный диапазон дат, который вы хотите автоматически отсортировать.

A screenshot showing the application of a formula in Excel to auto-sort dates

2. Затем отформатируйте числа в формат даты, выбрав Короткая дата из выпадающего списка Общий на вкладке Главная. См. скриншот:

A screenshot showing how to format sorted numbers as dates in Excel

3. Теперь порядковые номера преобразованы в формат даты, и исходные даты также отсортированы. См. скриншот:

A screenshot showing the result of converting sorted numbers to date format in Excel

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

A screenshot showing automatically sorted dates after entering new data in Excel


arrow blue right bubble Автоматическая сортировка дат при вводе или изменении с использованием кода VBA

Следующий код VBA может помочь вам автоматически сортировать даты в исходном столбце при вводе или изменении даты по мере необходимости.

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

2. Щелкните правой кнопкой мыши вкладку листа и выберите Просмотр кода в контекстном меню. В открывшемся окне Microsoft Visual Basic for Applications скопируйте и вставьте следующий код в пустое окно Модуль. См. скриншот:

Код VBA: автоматическая сортировка при вводе или изменении даты:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    On Error Resume Next
    If Application.Intersect(Target, Application.Columns(1)) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    Range("A1").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
                                        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

A screenshot of VBA code being entered in the Visual Basic editor for auto-sorting dates

Примечание: В приведенном выше коде введенные даты будут автоматически отсортированы в столбце A. Вы можете изменить A1 и A2 на свои собственные ячейки по мере необходимости.

3. С этого момента, когда вы вводите дату в столбец A, даты будут автоматически отсортированы по возрастанию.

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Переворот в анализе данных на основе: Интеллектуальное выполнение   |  Сгенерировать код  |  Создать Пользовательские Формулы  |  Анализ данных и генерация диаграмм  |  Вызов Kutools Functions
Популярные функции: Найти, выделить или отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячейки без потери данных   |   Округлить...
Супер ПОИСК: VLookup с несколькими критериями    VLookup с несколькими значениями  |   Многолистовой поиск   |   Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскр. список   |  Зависимый раскрывающийся список   |  Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки   |  Дизайн листа   |   Улучшенная строка формулы    Управление книгой и листами   |  Библиотека автотекста (Auto Text)   |  Выбор даты   |  Объединить данные   |  Шифрование/Расшифровка ячеек    Отправить письмо по списку   |  Супер фильтр   |   Специальный фильтр (фильтр по жирному/курсиву/зачеркиванию...) ...
Топ–15 наборов инструментов: 12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...)   |   50+ типов диаграмм (Диаграмма Ганта, ...)   |   40+ практических формул (Расчет возраста на основе даты рождения, ...)   |   19 инструментов вставки (Вставить QR-код, Вставить изображение из пути, ...)   |  12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...)   |  7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...)   |   ... и многое другое
Используйте Kutools на вашем предпочитаемом языке – поддерживаются английский, испанский, немецкий, французский, китайский и более40 других языков!

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


Office Tab добавляет вкладочный интерфейс в Office, делая вашу работу значительно проще

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна, а не в новых окнах.
  • Увеличьте свою продуктивность на50% и сократите сотни кликов мышью ежедневно!