Как в Excel сделать отбор по дате рождения: 5 работающих способов

Почему фильтрация по дате рождения — частая задача в Excel

Работа с датами рождения в Microsoft Excel или Google Таблицах — одна из самых распространённых задач в HR-департаментах, учебных заведениях и медицинских учреждениях. Нужно отобрать сотрудников старше 30 лет? Или найти студентов, которым исполнится 18 до конца года? А может, требуется сформировать список пенсионеров по возрасту? Все эти задачи решаются через отбор по дате рождения, но далеко не все пользователи знают, как сделать это быстро и без ошибок.

Основная сложность заключается в том, что дата рождения — это не просто число, а динамический параметр, который зависит от текущей даты. Сегодня человеку 25, а завтра — уже 26. Поэтому обычная фильтрация по столбцу "Возраст" часто даёт неточные результаты, если этот столбец не обновляется автоматически. В этой статье мы разберём 5 надёжных способов отбора по дате рождения, которые работают в любых версиях Excel (включая Excel 365 и Excel 2021), а также в Google Sheets.

Вы узнаете:

  • 🔍 Как использовать автофильтр для базового отбора по возрасту
  • 📅 Почему функции ДАТА, ГОД и СЕГОДНЯ — основа для расчёта возраста
  • 📊 Как сводные таблицы упрощают анализ больших массивов данных
  • ⚡ В чём преимущество условного форматирования для визуального отбора
  • 🤖 Как автоматизировать процесс с помощью Power Query (для продвинутых пользователей)

Способ 1: Базовый отбор через автофильтр (для начинающих)

Если вам нужно быстро отфильтровать записи по конкретной дате или диапазону (например, все, кто родился в 1990 году), автофильтр — самый простой инструмент. Он не требует знания формул и работает во всех версиях Excel.

Как применить:

  1. Выделите заголовок столбца с датами рождения (например, B1).
  2. Перейдите на вкладку ДанныеФильтр (или нажмите Ctrl+Shift+L).
  3. Нажмите на стрелочку в заголовке столбца и выберите Фильтры по дате.
  4. Укажите нужный критерий: Равно, До, После или Между.

Пример: чтобы найти всех, кто родился в 1990–1995 годах, выберите Между и введите 01.01.1990 и 31.12.1995.

⚠️ Внимание: Автофильтр не учитывает текущий возраст! Он фильтрует только по году рождения, а не по количеству полных лет. Если вам нужен отбор по возрасту (например, "все, кому 18+"), используйте следующий способ.
📊 Как часто вы работаете с датами в Excel?
Ежедневно
Несколько раз в неделю
Рядом
Первый раз

Способ 2: Расчёт возраста и фильтрация по формуле

Чтобы отобрать людей по текущему возрасту (а не по году рождения), сначала нужно рассчитать возраст для каждой записи. Для этого используйте комбинацию функций:

=ЦЕЛОЕ((СЕГОДНЯ()-B2)/365,25)

Где B2 — ячейка с датой рождения. Формула учитывает високосные годы (коэффициент 365,25).

Алгоритм действий:

  1. Создайте новый столбец (например, Возраст).
  2. Введите формулу в первую ячейку и протяните её вниз.
  3. Примените автофильтр к столбцу Возраст и выберите нужный диапазон (например, Больше или равно 18).
Функция Назначение Пример
СЕГОДНЯ() Возвращает текущую дату =СЕГОДНЯ()15.05.2026
ГОД() Извлекает год из даты =ГОД(B2)1990
ДАТА() Создаёт дату из года, месяца, дня =ДАТА(2026;5;15)
ЦЕЛОЕ() Округляет число до целого =ЦЕЛОЕ(18,9)18

Для более точного расчёта (с учётом месяца рождения) используйте:

=ЕСЛИ(ИЛИ(МЕСЯЦ(СЕГОДНЯ())>МЕСЯЦ(B2); И(МЕСЯЦ(СЕГОДНЯ())=МЕСЯЦ(B2); ДЕНЬ(СЕГОДНЯ())>=ДЕНЬ(B2))); ГОД(СЕГОДНЯ())-ГОД(B2); ГОД(СЕГОДНЯ())-ГОД(B2)-1)

Создать столбец "Возраст"|Ввести формулу расчёта возраста|Протянуть формулу на все строки|Применить автофильтр к столбцу "Возраст"-->

Способ 3: Расширенный фильтр для сложных условий

Если вам нужно отфильтровать данные по нескольким критериям одновременно (например, "женщины 1985–1990 года рождения с высшим образованием"), используйте расширенный фильтр. Он позволяет задавать комплексные условия в отдельном диапазоне.

Пошаговая инструкция:

  1. Скопируйте заголовки столбцов в отдельную область (например, в E1:G1).
  2. Под заголовками укажите условия. Например:
    • E2: Женский (пол)
    • F2: >=01.01.1985 (дата рождения)
    • G2: <=31.12.1990
  • Перейдите в ДанныеДополнительно (или Расширенный фильтр в новых версиях).
  • Укажите исходный диапазон и диапазон условий. Нажмите OK.
  • Результат будет выведен на новом листе или в указанной области.

    ⚠️ Внимание: В расширенном фильтре даты должны быть в формате Excel (не текст!). Если даты хранятся как текст (например, "15.05.1990"), сначала преобразуйте их с помощью функции ДАТАЗНАЧ().

    Как проверить формат даты?

    Чтобы убедиться, что Excel распознаёт ячейку как дату, а не как текст, выделите её и посмотрите на формат в панели инструментов. Если отображается категория "Текст" или "Общий", примените формат "Дата" (Ctrl+1 → вкладка "Число").

    Способ 4: Условное форматирование для визуального отбора

    Если вам не нужно выделять данные в отдельный список, а достаточно визуально отметить нужные записи (например, выделить красным всех, кому больше 60 лет), используйте условное форматирование.

    Инструкция:

    1. Выделите диапазон с данными (например, A2:C100).
    2. Перейдите на вкладку ГлавнаяУсловное форматированиеСоздать правило.
    3. Выберите Использовать формулу для определения форматируемых ячеек.
    4. Введите формулу (например, для выделения пенсионеров):
      =И($B2<ДАТА(ГОД(СЕГОДНЯ())-60;1;1))

      Где $B2 — первая ячейка со столбцом дат рождения.

    5. Задайте формат (например, красный фон) и нажмите OK.

    Теперь все строки, соответствующие условию, будут подсвечены. Этот метод удобен для быстрого анализа без изменения структуры данных.

    =И(МЕСЯЦ($B2)=МЕСЯЦ(СЕГОДНЯ()); ДЕНЬ($B2)>=ДЕНЬ(СЕГОДНЯ()))

    Это поможет не пропустить поздравления коллег!-->

    Способ 5: Сводные таблицы для анализа по возрастным группам

    Когда нужно не просто отфильтровать данные, а проанализировать распределение по возрасту (например, построить график по возрастным категориям), сводные таблицы — лучший выбор. Они позволяют группировать данные по диапазонам (18–25, 26–35 и т. д.) и визуализировать результаты.

    Как создать сводную таблицу по дате рождения:

    1. Выделите исходные данные (включая заголовки).
    2. Перейдите на вкладку ВставкаСводная таблица.
    3. В открывшемся окне перетащите поле с датой рождения в область Строки.
    4. Щёлкните правой кнопкой по любой дате в сводной таблице → Группировка.
    5. Задайте параметры группировки:
      • Начальная дата: 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)); "Рыбы";

    ...

    ))

    Затем отфильтруйте по этому столбцу. Полный список условий для всех знаков зодиака можно найти в дополнительных материалах.

    Как автоматически обновлять возраст при открытии файла?

    Функция СЕГОДНЯ() пересчитывается автоматически, но если этого не происходит:

    1. Проверьте настройки: Формулы → Параметры вычислений → Автоматически.
    2. Если файл открывается в ручном режиме, нажмите F9 для принудительного пересчёта.
    3. Для Google Sheets используйте =TODAY() — она обновляется при каждом открытии.
    Как экспортировать отфильтрованные данные в отдельный файл?

    После применения фильтра:

    1. Выделите видимые строки (нажмите Alt+; или Ctrl+Shift+Стрелка вниз).
    2. Скопируйте их (Ctrl+C).
    3. Вставьте в новый файл (Ctrl+V) или экспортируйте через Файл → Сохранить как.

    Для Google Sheets используйте Файл → Скачать → Лист Excel после фильтрации.

    Работает ли это в Excel Online?

    Да, все описанные методы (кроме Power Query) поддерживаются в Excel Online. Однако:

    • Некоторые функции (например, ДАТАЗНАЧ) могут называться иначе.
    • Расширенный фильтр работает, но интерфейс немного отличается.
    • Сводные таблицы создаются так же, но группировка дат может требовать ручной настройки.