Note: The other languages of the website are Google-translated. Back to English
Увійти  \/ 
x
or
x
Реєстрація  \/ 
x

or

Як автоматично сортувати дату при введенні або зміні дати в 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, наприклад, а потім натисніть Ctrl + Shift + Enter клавіші разом, і ви отримаєте послідовність чисел, а потім перетягніть маркер заповнення вниз до комірок, які ви хочете використовувати, див. знімок екрана:

примітки: У наведеній вище формулі: A2: A15 - це ваш початковий діапазон дат, який потрібно автоматично сортувати.

doc автосортування за датою 1

2. Потім відформатуйте цифри як формат дати, натиснувши Коротке побачення від загальний розкривний список під Головна вкладку, див. знімок екрана:

doc автосортування за датою 2

3. Потім порядкові номери були перетворені у формат дати, а також відсортовано вихідну дату, див. Знімок екрана:

doc автосортування за датою 3

4. Відтепер, коли ви вводите нову дату або змінюєте дату в стовпці A, дата в колонці C автоматично сортуватиметься за зростанням, див.

doc автосортування за датою 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

doc автосортування за датою 6

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

3. Відтепер, коли ви введете дату в стовпець A, дата буде сортуватися за зростанням автоматично.


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

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

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Say something here...
symbols left.
You are guest
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.
    Richard Savage · 11 months ago
    That VBA code is solid gold! Thank you! :-)
  • To post as a guest, your comment is unpublished.
    Ross · 2 years 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 · 2 years 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 · 2 years 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.
    resmithjr1963@gmail.com · 3 years 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 · 3 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 · 3 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 · 3 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 · 4 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 · 3 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 · 4 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