Зміст
У цій статті ми розглянемо різні способи сортування дат в Excel. Ви дізнаєтеся, як швидко впорядкувати дати в хронологічному порядку, відсортувати по місяцях без урахування років, відсортувати дні народження по місяцях і днях, а також як виконати автоматичне сортування по даті при введенні нових значень.
Вбудовані в Excel параметри сортування є потужними та ефективними інструментами, але вони не завжди працюють правильно, коли мова йде про сортування дат. Цей підручник навчить вас декільком корисним прийомам, щоб упорядкувати Excel за датою в осмислений спосіб, не псуючи ваші дані.
Як відсортувати дати в хронологічному порядку
Розташувати дати в хронологічному порядку в Excel дуже просто. Достатньо скористатися стандартним Сортування за зростанням варіант:
- Виберіть дати, які ви хочете відсортувати в хронологічному порядку.
- Про це йдеться на Головна сторінка у вкладці Формати групу, натисніть Сортування та фільтрація та оберіть Сортувати від старого до нового Крім того, ви можете скористатися A-Z опція на Дані у вкладці Сортування та фільтрація група.
Як відсортувати за датою в Excel
Параметри сортування Excel також можна використовувати для перегрупування всієї таблиці, а не тільки одного стовпця. Щоб відсортувати записи за датою, зберігаючи рядки недоторканими, ключовим моментом є розширення виділення, коли з'явиться відповідний запит.
Нижче наведені детальні кроки сортування даних в Excel за датою:
- У вашій електронній таблиці виберіть дати без заголовка стовпця.
- Про це йдеться на Головна сторінка вкладка, натисніть Сортування та фільтрація та обирайте Сортувати від старого до нового .
- На сьогоднішній день, на жаль, це не так. Попередження про сортування З'явиться діалогове вікно, залиште значення за замовчуванням Розширити вибір виберіть потрібну опцію та натисніть Сортування :
Все! Записи відсортовані за датами і всі рядки збережені разом:
Як відсортувати по місяцях в Excel
Можуть бути випадки, коли ви захочете сортувати дати за місяцями ігнорування року, наприклад, при групуванні ювілейних дат ваших колег або родичів. У цьому випадку стандартна функція сортування Excel не буде працювати, оскільки вона завжди враховує рік, навіть якщо ваші клітинки відформатовані так, щоб відображати тільки місяць або місяць і день.
Рішення полягає в тому, щоб додати допоміжний стовпець, витягти номер місяця і відсортувати за цим стовпцем. Щоб отримати місяць з дати, використовуйте функцію МЕСЯЦ.
На скріншоті нижче ми виділяємо номер місяця з дати в B2 за допомогою цієї формули:
=MONTH(B2)
Порада. Якщо результат відображається у вигляді дати, а не числа, встановіть значення Генеральний до комірок з формулами.
А тепер відсортуйте свій стіл за Місяць Для цього виберіть номери місяців (С2:С8), натисніть кнопку Сортування та фільтрація > Сортувати від меншого до більшого , а потім розгорніть виділення, коли Excel попросить Вас про це. Якщо все зроблено правильно, Ви отримаєте наступний результат:
Зверніть увагу, що наші дані тепер відсортовані за місяцями, без урахування років та днів у кожному місяці. Якщо ви бажаєте сортування за місяцем та днем потім дотримуйтесь інструкцій з наступного прикладу.
Якщо назви місяців введені у вигляді текст потім відсортуйте за користувацьким списком, як описано в цьому прикладі.
Як відсортувати дні народження в Excel за місяцем і днем
При впорядкуванні дат для календаря днів народження оптимальним рішенням буде сортування дат по місяцях і днях. Отже, потрібна формула, яка б витягувала місяці і дні з дат народження.
У цьому випадку в нагоді стане функція ТЕКСТ Excel, яка може перетворити дату в текстовий рядок у зазначеному форматі. Для нашої мети підійде код формату "ммдд" або "мм.дд".
З вихідною датою в B2 формула набуває такого вигляду:
=TEXT(B2, "mm.dd")
Далі відсортуйте Місяць і день стовпчик від найбільшого до найменшого, і ви отримаєте дані впорядковані за днями кожного місяця.
Такого ж результату можна досягти, використовуючи формулу DATE таким чином:
=DATE(2000, МІСЯЦЬ(B2),ДЕНЬ(B2))
Формула генерує список дат, витягуючи місяць і день з фактичної дати в B2 і замінюючи реальний рік на фальшивий, 2000 в цьому прикладі, хоча ви можете поставити будь-який. Ідея полягає в тому, щоб мати один і той же рік для всіх дат, а потім відсортувати список дат в хронологічному порядку. Оскільки рік один і той же, то дати будуть відсортовані по місяцю і дню, що ви і робитеякі я шукаю.
Як відсортувати дані за роками в Excel
Що стосується сортування за роками, то найпростіший спосіб - розташувати дати в хронологічному порядку за допомогою сортування за зростанням в Excel ( Від найстаріших до найновіших ) варіант.
Дати будуть відсортовані за роками, потім за місяцями, а потім за днями, як показано на скріншоті нижче.
Якщо вас з якихось причин не влаштовує таке розташування, то можна додати допоміжний стовпець з формулою YEAR, яка витягує рік з дати:
=YEAR(C2)
Після сортування даних за ознакою Рік Ви побачите, що дати відсортовані лише за роками, ігнорування місяців і днів .
Порада. Якщо ви хочете сортувати дати по дням не враховуючи місяці та роки, виділити день за допомогою функції ДЕНЬ, а потім відсортувати за День колонка:
=DAY(B2)
Як відсортувати за днями тижня в Excel
Для сортування даних по днях тижня також знадобиться допоміжний стовпець, як і в попередніх прикладах. В даному випадку ми будемо заповнювати допоміжний стовпець формулою ДЕНЬ, яка повертає число, що відповідає дню тижня, а потім сортувати по допоміжному стовпцю.
Для тижня, який починається з неділі (1) по суботу (7), слід використовувати таку формулу:
=WEEKDAY(A2)
Якщо Ваш тиждень починається з понеділка (1) по неділю (7), то це правильний варіант:
=WEEKDAY(A2, 2)
Де A2 - комірка, що містить дату.
Для цього прикладу ми використали першу формулу і отримали такий результат:
У випадку, якщо назви днів тижня введені у вигляді текст а не як дати, то скористайтеся функцією "Спеціальне сортування", як описано в наступному прикладі.
Як відсортувати дані в Excel за назвами місяців (або днями тижня)
Якщо у вас є список назв місяців у вигляді текст а не як дати, відформатовані для відображення лише місяців, застосування сортування за зростанням в Excel може бути проблематичним - воно впорядкує назви місяців за алфавітом замість сортування за порядком місяців з січня по грудень. У цьому випадку допоможе користувацьке сортування:
- Виберіть записи, які потрібно відсортувати за назвою місяця.
- Про це йдеться на Дані у вкладці Сортування та фільтрація групу, натисніть Сортування .
- В рамках проекту Сортування виконайте наступні дії:
- Під Колонка виберіть назву стовпчика, який містить назви місяців.
- Під Сортувати далі обирайте Значення комірок .
- Під Замовлення виберіть Користувацький список .
- В рамках проекту Користувацькі списки виберіть або повні назви місяців ( січень , лютий , Березень , ...) або скорочені назви ( Ян , Лютий , Березень ...) в залежності від того, як перераховані місяці у вашому робочому аркуші:
Готово! Ваші дані відсортовані за назвою місяця в хронологічному порядку, а не за алфавітом:
Порада. Для сортування за імена та прізвища дні тижня виберіть або повні імена ( Неділя , Понеділок , Вівторок , ...) або скорочені назви ( Сонце , Пн , Туе ...) у справі Користувацькі списки діалогове вікно.
Як виконати автоматичне сортування за датою в Excel
Як ви бачили, функція сортування в Excel справляється з різними завданнями. Єдиний недолік - вона не є динамічною. Це означає, що вам доведеться пересортовувати дані при кожній зміні і при додаванні нової інформації. Можливо, вам цікаво, чи є спосіб автоматичного сортування при кожному додаванні нової дати, щоб ваші дані завжди були впорядковані.
Найкраще це зробити за допомогою макросу. Нижче наведено кілька прикладів коду для автоматичного сортування наведених нижче даних за датою в хронологічному порядку.
Макрос 1: Автоматичне сортування при кожній зміні аркуша
Цей макрос виконується щоразу, коли відбувається зміна в будь-якому місці робочого аркуша.
Передбачається, що ваші дані знаходяться в колонках з A по C, а дати, за якими ви хочете відсортувати, знаходяться в колонці C, починаючи з C2. Також передбачається, що рядок 1 містить заголовки (Header:=xlYes). Якщо ваші записи знаходяться в різних колонках, то зробіть наступні корективи:
- Змініть посилання А1 на верхню ліву комірку цільового діапазону (включаючи заголовки).
- Змініть посилання C2 на саму верхню комірку, що містить дату.
Макрос 2: Автоматичне сортування при зміні певного діапазону
Якщо ви працюєте з величезним робочим листом, що містить багато інформації, повторне сортування при абсолютно будь-якій зміні в аркуші може бути клопітно. В цьому випадку має сенс обмежити спрацьовування макросу змінами, що відбуваються в певному діапазоні. Наступний VBA-код сортує дані тільки при зміні в стовпці С, що містить дати.
Порада. Ці макроси можна використовувати для автоматичного сортування за будь-який тип даних а не тільки дати. Наші зразки кодів відсортовані в порядку зростання. Якщо ви хочете сортування за спаданням змінити Order1:=xlAcending на Order1:=xlDescending.
Як додати макрос на робочий аркуш
Оскільки обидва макроси запускаються автоматично при зміні аркуша, код слід вставити на тому аркуші, на якому потрібно відсортувати дані (у цьому прикладі - на аркуші Sheet1). Ось як це зробити:
- Натисніть Alt + F11, щоб відкрити редактор VBA.
- В рамках проекту Project Explorer зліва двічі клацніть по аркушу, на якому потрібно виконати автосортування.
- Вставте код у вікні Код.
Автоматичне сортування дат за формулою
Припустимо, у вас є список дат, і ви хочете, щоб вони були автоматично розташовані в хронологічному порядку в окремому стовпчику, поруч з вихідним списком. Це можна зробити за допомогою наступної формули масиву:
=IFERROR(INDEX($A$2:$A$20, MATCH(ROWS($A$2:A2), COUNTIF($A$2:$A$20, "<="&$A$2:$A$20), 0)), "")
Де A2:A20 - вихідні (невідсортовані) дати, включаючи кілька порожніх клітинок для можливих нових записів.
Введіть формулу в порожню комірку поруч зі стовпчиком з вихідними датами (C2 в нашому прикладі) і натисніть одночасно клавіші Ctrl + Shift + Enter для її заповнення. Потім перетягніть формулу вниз до решти комірок (C2:C20 в нашому прикладі).
Порада: щоб дати, що додаються, сортувалися автоматично, обов'язково включіть у вказаний діапазон достатню кількість порожніх комірок. Наприклад, наш список дат знаходиться в діапазоні A2:A7, але у формулу ми вводимо $A$2:$A$20 і заповнюємо ним комірки з C2 по C20. Функція IFERROR запобігає помилкам у зайвих комірках, повертаючи замість них порожній рядок ("").
Не працює сортування Excel по даті
Якщо ваші дати не відсортовані як слід, швидше за все, вони введені в форматі, який Excel не розуміє, тому сприймаються як текстові рядки, а не дати. У наступному уроці пояснюється, як відрізнити так звані "текстові дати" і перетворити їх в звичайні дати Excel: Як перетворити текст в дату в Excel.
Ось так виконується сортування за датою в Excel. Дякую за прочитання і сподіваюся побачити вас на нашому блозі наступного тижня!
Доступні для завантаження
Приклади формул сортування за датою (файл .xlsx)
Макрос автоматичного сортування (файл .xlsm)