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, наприклад, а потім натисніть 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-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

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

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 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, щоб отримати правильний результат.
Будь ласка, спробуйте.
Цей коментар був мінімізований модератором на сайті
На додаток до повторюваних дат, чи є також спосіб включити кілька стовпців даних під час сортування? Мені потрібно, щоб він включав кілька стовпців і сортував їх усі разом із датами закінчення терміну дії.
Цей коментар був мінімізований модератором на сайті
Я зареєстрував чекову книжку, і це працює, але я хочу з’ясувати, як зробити так, щоб мої записи йшли в порядку дат. Будемо вдячні за будь-яку допомогу. Я все ще вивчаю Excel.
Цей коментар був мінімізований модератором на сайті
Чи існує конкретна формула, щоб клітинки залишалися після відсортованої дати? Було б добре впорядкувати за датою, але зберегти весь рядок інформації. Будемо вдячні за будь-яку допомогу.
Цей коментар був мінімізований модератором на сайті
За допомогою коду VBA я скопіював та вставив наведене вище, але хочу, щоб дати в стовпці F були значеннями, за якими сортуються дані. Я змінив значення діапазону на F2 і F3500 (розмір електронної таблиці, де рядок 1 є заголовками), але він усе ще сортує за датами в стовпці A. Чи може хтось мені допомогти?
Цей коментар був мінімізований модератором на сайті
Привіт, Росс,
Застосовуючи код до стовпця F, ви повинні змінити деякі посилання на ваші потреби, як показано нижче:
Приватний допоміжний робочий лист_Change(ByVal Target As Range)
'Оновлення Extendoffice 20160606
On Error Resume Next
Якщо Application.Intersect(Target, Application.Columns(6)) — це нічого, вийдіть із підпорядкування
Якщо Target.Count > 1, то вийдіть із Sub
Діапазон("F1").Ключ сортування1:=Діапазон("F2"), Порядок1:=xlAscending, Заголовок:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Будь ласка, спробуйте, сподіваюся, це допоможе вам!
Цей коментар був мінімізований модератором на сайті
Цей код VBA — суцільне золото! Дякую! :-)
Цей коментар був мінімізований модератором на сайті
Привіт, що робити, якщо я хочу зробити це для кількох стовпців або навіть мати нову початкову точку в тому самому стовпці? Чи просто зробити перерву та перескопіювати код VBA у тому самому вікні?
Дякую.
Цей коментар був мінімізований модератором на сайті
Привіт, це чудовий інструмент. Дякую. Як я можу застосувати це до кількох стовпців на одній вкладці? Чи можу я застосувати його, щоб перезапустити сортування за датою в новій комірці того ж стовпця? Я б просто перевставив код VBA в те саме вікно?
Дякую.
Цей коментар був мінімізований модератором на сайті
Привіт, Noname9, як справи? Досягнення вашої мети за допомогою коду VBA мені не під силу. Але я знаю, як використовувати формули, щоб зробити трюк. Припустимо, у нас є два стовпці з датами, скажімо, A2:B7. Як відсортувати ці дати в новому стовпці? Будь ласка, зробіть наступне.
Спочатку нам потрібно об’єднати два стовпці дат в один стовпець. Скопіюйте та вставте формулу =INDEX($A$2:$B$7,INT((ROWS(D$2:D2)-1)/2)+1,MOD(ROWS(D$2:D2)-1,2)+ 1) в комірку D2. І перетягніть маркер заповнення вниз, щоб об’єднати всі дати. Будь ласка, дивіться скріншот 1.
Потім ми відсортуємо об’єднані дати. Скопіюйте та вставте формулу =INDEX($D$2:$D$13, MATCH(ROWS($D$2:D2),COUNTIF($D$2:$D$13,"<="&$D$2:$D$13)) ,0)) у F2. І перетягніть маркер заповнення вниз, щоб відсортувати всі дати. Будь ласка, дивіться скріншот 2.
Сподіваюся, це допоможе. Гарного дня. З повагою, Менді
There are no comments posted here yet

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL