Note: The other languages of the website are Google-translated. Back to English

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

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

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

Дата автосортировки, когда дата вводится или изменяется с кодом VBA


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

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

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

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

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

автосортировка документов по дате 1

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

автосортировка документов по дате 2

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

автосортировка документов по дате 3

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

автосортировка документов по дате 4


стрелка синий правый пузырь Дата автосортировки, когда дата вводится или изменяется с кодом VBA

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

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

2. Щелкните правой кнопкой мыши вкладку листа и выберите Просмотреть код из контекстного меню во всплывающем Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код в пустое Модули окно, см. снимок экрана:

Код 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

автосортировка документов по дате 6

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

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


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (15)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Вы забыли упомянуть, что формула представляет собой массив, и вам нужно нажать Ctrl + Shift + Enter. К счастью, у вас был скриншот, иначе ваша страница была бы пустой тратой киберпространства.
Этот комментарий был сведен к минимуму модератором на сайте
Что делать, если в списке есть повторяющаяся дата? И я хочу, чтобы оба числа отображались.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Райан,

Чтобы отсортировать дату с повторяющимися, вы должны применить следующую формулу:

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

Не забудьте одновременно нажать клавиши Shift + Ctrl + Enter.

Надеюсь, это поможет вам, спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Круто :) Работает нормально
Этот комментарий был сведен к минимуму модератором на сайте
как я могу сделать такой же расчет сортировки, но от самой новой даты до самой старой? В настоящее время это от самого старого к самому новому. Переворачивания знака < недостаточно, и, кроме того, у меня недостаточно четкое понимание того, что он делает. Также я думаю, что может происходить то, что Excel автоматически работает сверху вниз, вызывая трудности.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Бо,

Чтобы автоматически отсортировать дату от самой новой до самой старой, вам просто нужно изменить <= на >= в приведенной выше формуле следующим образом:
=INDEX($A$2:$A$15,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$15,">="&$A$2:$A$15),0))
После вставки этой формулы не забудьте одновременно нажать клавиши Ctrl + Shift + Enter, чтобы получить правильный результат.
Пожалуйста, попробуйте.
Этот комментарий был сведен к минимуму модератором на сайте
В дополнение к повторяющимся датам, есть ли способ включить несколько столбцов данных при сортировке? Мне нужно, чтобы он включал несколько столбцов и сортировал их все вместе с датами истечения срока действия.
Этот комментарий был сведен к минимуму модератором на сайте
Я разозлился в чековой книжке, и она работает, но я хочу выяснить, как сделать так, чтобы моя запись шла в порядке дат. Любая помощь будет оценена по достоинству. Я все еще изучаю эксель.
Этот комментарий был сведен к минимуму модератором на сайте
Есть ли конкретная формула для сохранения ячеек после отсортированной даты? Было бы неплохо упорядочить по дате, но сохранить весь ряд информации. Любая помощь приветствуется.
Этот комментарий был сведен к минимуму модератором на сайте
С помощью кода VBA я скопировал и вставил вышеприведенное, но хочу, чтобы даты в столбце F были значениями, по которым сортируются данные. Я изменил значения диапазона на F2 и F3500 (размер электронной таблицы, где строка 1 — это заголовки), но сортировка по-прежнему выполняется по датам в столбце A. Кто-нибудь может мне помочь?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Росс,
При применении кода к столбцу F вы должны изменить некоторые ссылки на ваши потребности, как показано ниже:
Private Sub Worksheet_Change (ByVal Target As Range)
'Обновить Extendoffice 20160606
On Error Resume Next
Если Application.Intersect(Target, Application.Columns(6)) ничего не значит, то выйдите из Sub
Если Target.Count > 1, то выйдите из Sub
Range("F1").Sort Key1:=Range("F2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Ориентация:=xlTopToBottom
End Sub

Пожалуйста, попробуйте, надеюсь, это поможет вам!
Этот комментарий был сведен к минимуму модератором на сайте
Этот код VBA — чистое золото! Благодарю вас! :-)
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, что, если я хочу сделать это с несколькими столбцами или даже создать новую начальную точку в том же столбце? Мне просто сделать перерыв и снова скопировать код VBA в том же окне?
Спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, это отличный инструмент. благодарю вас. Как я могу применить это к нескольким столбцам на одной вкладке? Могу ли я применить его для перезапуска сортировки по дате в новой ячейке того же столбца? Могу ли я просто повторно вставить код VBA в то же окно?
Спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Привет Noname9, как дела? Достичь вашей цели с помощью кода VBA мне не под силу. Но я знаю, как использовать формулы, чтобы добиться цели. Предположим, у нас есть два столбца дат, скажем, A2:B7. Как отсортировать эти даты в новый столбец? Пожалуйста, сделайте следующее.
Во-первых, нам нужно объединить два столбца дат в один столбец. Скопируйте и вставьте формулу =ИНДЕКС($A$2:$B$7,INT((СТРОКИ(D$2:D2)-1)/2)+1,MOD(СТРОКИ(D$2:D2)-1,2)+ 1) в ячейку D2. И перетащите маркер заполнения вниз, чтобы объединить все даты. Пожалуйста, смотрите скриншот 1.
Затем мы отсортируем объединенные даты. Скопируйте и вставьте формулу =ИНДЕКС($D$2:$D$13,ПОИСКПОЗ(СТРОКИ($D$2:D2),СЧЁТЕСЛИ($D$2:$D$13,"<="&$D$2:$D$13) ,0)) в F2. И перетащите маркер заполнения вниз, чтобы отсортировать все даты. Пожалуйста, смотрите скриншот 2.
Надеюсь, это поможет. Хорошего дня. С уважением, Мэнди.
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL