Почему фильтрация по дате рождения — частая задача в Excel
Работа с датами рождения в Microsoft Excel или Google Таблицах — одна из самых распространённых задач в HR-департаментах, учебных заведениях и медицинских учреждениях. Нужно отобрать сотрудников старше 30 лет? Или найти студентов, которым исполнится 18 до конца года? А может, требуется сформировать список пенсионеров по возрасту? Все эти задачи решаются через отбор по дате рождения, но далеко не все пользователи знают, как сделать это быстро и без ошибок.
Основная сложность заключается в том, что дата рождения — это не просто число, а динамический параметр, который зависит от текущей даты. Сегодня человеку 25, а завтра — уже 26. Поэтому обычная фильтрация по столбцу "Возраст" часто даёт неточные результаты, если этот столбец не обновляется автоматически. В этой статье мы разберём 5 надёжных способов отбора по дате рождения, которые работают в любых версиях Excel (включая Excel 365 и Excel 2021), а также в Google Sheets.
Вы узнаете:
- 🔍 Как использовать автофильтр для базового отбора по возрасту
- 📅 Почему функции
ДАТА,ГОДиСЕГОДНЯ— основа для расчёта возраста - 📊 Как сводные таблицы упрощают анализ больших массивов данных
- ⚡ В чём преимущество условного форматирования для визуального отбора
- 🤖 Как автоматизировать процесс с помощью
Power Query(для продвинутых пользователей)
Способ 1: Базовый отбор через автофильтр (для начинающих)
Если вам нужно быстро отфильтровать записи по конкретной дате или диапазону (например, все, кто родился в 1990 году), автофильтр — самый простой инструмент. Он не требует знания формул и работает во всех версиях Excel.
Как применить:
- Выделите заголовок столбца с датами рождения (например,
B1). - Перейдите на вкладку
Данные→Фильтр(или нажмитеCtrl+Shift+L). - Нажмите на стрелочку в заголовке столбца и выберите
Фильтры по дате. - Укажите нужный критерий:
Равно,До,ПослеилиМежду.
Пример: чтобы найти всех, кто родился в 1990–1995 годах, выберите Между и введите 01.01.1990 и 31.12.1995.
⚠️ Внимание: Автофильтр не учитывает текущий возраст! Он фильтрует только по году рождения, а не по количеству полных лет. Если вам нужен отбор по возрасту (например, "все, кому 18+"), используйте следующий способ.
Способ 2: Расчёт возраста и фильтрация по формуле
Чтобы отобрать людей по текущему возрасту (а не по году рождения), сначала нужно рассчитать возраст для каждой записи. Для этого используйте комбинацию функций:
=ЦЕЛОЕ((СЕГОДНЯ()-B2)/365,25)
Где B2 — ячейка с датой рождения. Формула учитывает високосные годы (коэффициент 365,25).
Алгоритм действий:
- Создайте новый столбец (например,
Возраст). - Введите формулу в первую ячейку и протяните её вниз.
- Примените автофильтр к столбцу
Возрасти выберите нужный диапазон (например,Больше или равно 18).
| Функция | Назначение | Пример |
|---|---|---|
СЕГОДНЯ() |
Возвращает текущую дату | =СЕГОДНЯ() → 15.05.2026 |
ГОД() |
Извлекает год из даты | =ГОД(B2) → 1990 |
ДАТА() |
Создаёт дату из года, месяца, дня | =ДАТА(2026;5;15) |
ЦЕЛОЕ() |
Округляет число до целого | =ЦЕЛОЕ(18,9) → 18 |
Для более точного расчёта (с учётом месяца рождения) используйте:
=ЕСЛИ(ИЛИ(МЕСЯЦ(СЕГОДНЯ())>МЕСЯЦ(B2); И(МЕСЯЦ(СЕГОДНЯ())=МЕСЯЦ(B2); ДЕНЬ(СЕГОДНЯ())>=ДЕНЬ(B2))); ГОД(СЕГОДНЯ())-ГОД(B2); ГОД(СЕГОДНЯ())-ГОД(B2)-1)
Создать столбец "Возраст"|Ввести формулу расчёта возраста|Протянуть формулу на все строки|Применить автофильтр к столбцу "Возраст"-->
Способ 3: Расширенный фильтр для сложных условий
Если вам нужно отфильтровать данные по нескольким критериям одновременно (например, "женщины 1985–1990 года рождения с высшим образованием"), используйте расширенный фильтр. Он позволяет задавать комплексные условия в отдельном диапазоне.
Пошаговая инструкция:
- Скопируйте заголовки столбцов в отдельную область (например, в
E1:G1). - Под заголовками укажите условия. Например:
E2:Женский(пол)F2:>=01.01.1985(дата рождения)G2:<=31.12.1990
Данные → Дополнительно (или Расширенный фильтр в новых версиях).OK.Результат будет выведен на новом листе или в указанной области.
⚠️ Внимание: В расширенном фильтре даты должны быть в формате Excel (не текст!). Если даты хранятся как текст (например,"15.05.1990"), сначала преобразуйте их с помощью функцииДАТАЗНАЧ().Как проверить формат даты?
Чтобы убедиться, что Excel распознаёт ячейку как дату, а не как текст, выделите её и посмотрите на формат в панели инструментов. Если отображается категория "Текст" или "Общий", примените формат "Дата" (
Ctrl+1→ вкладка "Число").Способ 4: Условное форматирование для визуального отбора
Если вам не нужно выделять данные в отдельный список, а достаточно визуально отметить нужные записи (например, выделить красным всех, кому больше 60 лет), используйте условное форматирование.
Инструкция:
- Выделите диапазон с данными (например,
A2:C100).- Перейдите на вкладку
Главная→Условное форматирование→Создать правило.- Выберите
Использовать формулу для определения форматируемых ячеек.- Введите формулу (например, для выделения пенсионеров):
=И($B2<ДАТА(ГОД(СЕГОДНЯ())-60;1;1))Где
$B2— первая ячейка со столбцом дат рождения.- Задайте формат (например, красный фон) и нажмите
OK.Теперь все строки, соответствующие условию, будут подсвечены. Этот метод удобен для быстрого анализа без изменения структуры данных.
=И(МЕСЯЦ($B2)=МЕСЯЦ(СЕГОДНЯ()); ДЕНЬ($B2)>=ДЕНЬ(СЕГОДНЯ()))Это поможет не пропустить поздравления коллег!-->
Способ 5: Сводные таблицы для анализа по возрастным группам
Когда нужно не просто отфильтровать данные, а проанализировать распределение по возрасту (например, построить график по возрастным категориям), сводные таблицы — лучший выбор. Они позволяют группировать данные по диапазонам (18–25, 26–35 и т. д.) и визуализировать результаты.
Как создать сводную таблицу по дате рождения:
- Выделите исходные данные (включая заголовки).
- Перейдите на вкладку
Вставка→Сводная таблица.- В открывшемся окне перетащите поле с датой рождения в область
Строки.- Щёлкните правой кнопкой по любой дате в сводной таблице →
Группировка.- Задайте параметры группировки:
- Начальная дата:
01.01.1950- Конечная дата:
31.12.2005- Шаг:
10 лет(или другой интервал)Добавьте другие поля (например, "Пол" или "Отдел") в область СтолбцыилиЗначениядля детализации.Результат — интерактивная таблица, где можно разворачивать группы и анализировать данные по возрастным категориям. Для визуализации добавьте сводную диаграмму (вкладка
Анализ→Сводная диаграмма).Типичные ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с проблемами при фильтрации по дате рождения. Вот 5 самых распространённых ошибок и способы их решения:
- 🗓 Даты хранятся как текст: Excel не распознаёт их как даты, и формулы не работают. Решение: используйте
ДАТАЗНАЧ()илиТЕКСТ.В.ДАТУ()для преобразования.- 📉 Неправильный расчёт возраста: формула
(СЕГОДНЯ()-B2)/365даёт погрешность из-за високосных лет. Решение: используйте коэффициент365,25или точную формулу с учётом месяцев.- 🔍 Фильтр не находит записи: возможно, в данных есть пробелы или скрытые символы. Решение: очистите данные с помощью
СЖПРОБЕЛЫ()илиПЕЧСИМВ().- 📊 Сводная таблица не группирует даты: проверьте, что в исходных данных нет пустых ячеек или ошибочных форматов. Решение: отфильтруйте исходные данные перед созданием сводной таблицы.
- ⚠ Формулы не обновляются: если вы используете
СЕГОДНЯ(), но возраст не меняется при открытии файла, проверьте настройки вычислений (Формулы → Параметры вычислений → Автоматически).Если ни один из способов не сработал, проверьте региональные настройки Excel. В некоторых локализациях (например, английской) функции даты могут называться иначе:
TODAY()вместоСЕГОДНЯ(),YEAR()вместоГОД().FAQ: Ответы на частые вопросы
Как отфильтровать людей, у которых день рождения через месяц?
Используйте формулу условного форматирования или создайте дополнительный столбец с проверкой:
=И(МЕСЯЦ($B2)=МЕСЯЦ(СЕГОДНЯ()+30); ДЕНЬ($B2)>=ДЕНЬ(СЕГОДНЯ()+30))Где
$B2— ячейка с датой рождения. Формула учитывает, что через 30 дней месяц может смениться.Можно ли сделать отбор по знаку зодиака?
Да! Сначала создайте столбец с определением знака зодиака по дате рождения:
=ЕСЛИ(И($B2>=ДАТА(ГОД($B2);1;20); $B2<=ДАТА(ГОД($B2);2;18)); "Водолей";ЕСЛИ(И($B2>=ДАТА(ГОД($B2);2;19); $B2<=ДАТА(ГОД($B2);3;20)); "Рыбы";
...
))
Затем отфильтруйте по этому столбцу. Полный список условий для всех знаков зодиака можно найти в дополнительных материалах.
Как автоматически обновлять возраст при открытии файла?
Функция
СЕГОДНЯ()пересчитывается автоматически, но если этого не происходит:
- Проверьте настройки:
Формулы → Параметры вычислений → Автоматически.- Если файл открывается в ручном режиме, нажмите
F9для принудительного пересчёта.- Для Google Sheets используйте
=TODAY()— она обновляется при каждом открытии.Как экспортировать отфильтрованные данные в отдельный файл?
После применения фильтра:
- Выделите видимые строки (нажмите
Alt+;илиCtrl+Shift+Стрелка вниз).- Скопируйте их (
Ctrl+C).- Вставьте в новый файл (
Ctrl+V) или экспортируйте черезФайл → Сохранить как.Для Google Sheets используйте
Файл → Скачать → Лист Excelпосле фильтрации.Работает ли это в Excel Online?
Да, все описанные методы (кроме
Power Query) поддерживаются в Excel Online. Однако:
- Некоторые функции (например,
ДАТАЗНАЧ) могут называться иначе.- Расширенный фильтр работает, но интерфейс немного отличается.
- Сводные таблицы создаются так же, но группировка дат может требовать ручной настройки.