Совет. Другие языки - Google-Translated. Вы можете посетить English версия этой ссылки.
Войти
x
or
x
x
Регистрация
x

or

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

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

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

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


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


Например, исходная дата в столбце 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 ваш исходный диапазон дат, который вы хотите автосортировать.

doc autosort по дате 1

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

doc autosort по дате 2

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

doc autosort по дате 3

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

doc autosort по дате 4


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

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

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

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

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

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160606
    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

doc autosort по дате 6

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

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


Kutools для Excel - лучший инструмент для повышения производительности в офисе Повысьте производительность на 80%

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

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

  • Включить редактирование и чтение с вкладками в Word, Excel, PowerPoint, Издатель, Доступ, Visio и Проект.
  • Открывайте и создавайте несколько документов в новых вкладках одного и того же окна, а не в новых окнах.
  • Увеличивает вашу производительность на 50% и уменьшает сотни щелчков мышью для вас каждый день!
нижняя часть офиса
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Ross · 4 months ago
    With the VBA code, I have copy and pasted the above but wish for the dates in column F to be the values by which the data is sorted. I've changed the range values to F2 and F3500 (the size of the spreadsheet where row 1 is titles), but it still sorts by the dates in column A. Can somebody help me please?
    • To post as a guest, your comment is unpublished.
      skyyang · 3 months ago
      Hello, Ross,
      When applying the code to column F, you should change some references to your need as below code:
      Private Sub Worksheet_Change(ByVal Target As Range)
      'Updateby Extendoffice 20160606
      On Error Resume Next
      If Application.Intersect(Target, Application.Columns(6)) Is Nothing Then Exit Sub
      If Target.Count > 1 Then Exit Sub
      Range("F1").Sort Key1:=Range("F2"), Order1:=xlAscending, Header:=xlYes, _
      OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
      End Sub

      Please try, hope it can help you!
  • To post as a guest, your comment is unpublished.
    Hector · 5 months ago
    Is there a particular formula to keep the cells following the sorted date? It would be nice to organize by date but keep the entire row of information. Any help would be much appreciated.
  • To post as a guest, your comment is unpublished.
    Robert Smith · 10 months ago
    I mad a checkbook register and it works but I want to figure out how to make my entry’s to go into date order. Any help would be appreciated. I’m still learning excel.
  • To post as a guest, your comment is unpublished.
    KC · 1 years ago
    In addition to the duplicate dates, is there also a way to include multiple columns of data when it sorts? I need it to include multiple columns and sort them all together with the expiration dates.
  • To post as a guest, your comment is unpublished.
    Bo · 1 years ago
    how can I do this same sorting calculation but from newest date to oldest? Currently it is Oldest to Newest. Flipping the < sign isn't enough and beyond that I don't have a strong enough understanding of what it is doing. Also I think what may be happening is excel automatically works top to bottom causing difficulties.
    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hello, Bo,

      To auto sort the date from newest to oldest, you just need to change the <= to >= in the above formula as follows:
      =INDEX($A$2:$A$15,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$15,">="&$A$2:$A$15),0))
      After inserting this formula, please remember to press Ctrl + Shift + Enter keys together to get the correct result.
      Please try it.
  • To post as a guest, your comment is unpublished.
    Ryan · 1 years ago
    What if there is a duplicate date in the list? And I want both numbers to show up.
    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hello, Ryan,

      To sort the date with duplicate ones, you should apply the following formula:

      =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,""))

      Please remember to press Shift + Ctrl + Enter keys together.

      Hope it can help you, thank you!
  • To post as a guest, your comment is unpublished.
    UrLoser · 2 years ago
    U forgot to mention the formula is array and you need to ctrl+Shift+ enter. Luckily you had a screenshot or your page would be a waste of cyberspace