Как найти соответствующие одиночные даты в Excel на основе диапазона дат начала и окончания?

Как проанализировать данные о датах отсутствия в Excel

Работа с данными в Excel может оказаться сложной задачей, особенно когда нужно интегрировать информацию из разных источников. В этой статье мы рассмотрим, как создать динамическую систему, которая позволит вам анализировать даты отсутствия на основе календарных недель. Мы будем использовать два рабочих листа: один для списка индивидуальных дат отсутствия, а второй для календарных недель с их стартовыми и конечными датами, а также статусом доступности.

Структура файлов и форматирование

В нашем случае у нас есть два листа:

  1. Список одиночных дат отсутствия (Absence) – в этом листе перечислены даты, когда сотрудники отсутствовали на работе.
  2. Список календарных недель (Availability) – этот лист содержит даты начала и окончания недели, а также столбец, в котором будет отображаться статус по количеству отсутствий.

Формат даты представлен в виде "год-день".

Как найти соответствующие одиночные даты в Excel на основе диапазона дат начала и окончания?
Список рабочих листов календарных недель

Цель и алгоритм работы

Мы стремимся создать колонку Status на листе Availability, которая будет показывать количество уникальных дней отсутствия (от 0 до 7) в рамках заданной недели. Логика будет работать следующим образом:

  • Если отсутствует дата из списка Absence в пределах недели, Status равен 0.
  • Если присутствует одна уникальная дата, Status равен 1.
  • Если имеется дубликат одной и той же даты, Status также равен 1.
  • Если есть две уникальные даты, Status равен 2.
  • Если отсутствий семь (вся неделя), Status равен 7.

Обработка верхней границы и дубликатов

Важно отметить, что верхняя граница (день недели) может быть изменена. Например, функция может учитывать до пятницы как последний день недели. Это обеспечит гибкость и динамичность данной системы. Также нужно учесть, что пользователь может вводить одну и ту же дату несколько раз; в этом случае должна быть предусмотрена функция, которая будет считать дату лишь один раз.

Как создать формулу в Excel

Вот один из способов сделать это:

=COUNT(FILTER(UNIQUE(Absence!$D$2:$D$365),(UNIQUE(Absence!$D$2:$D$365)>=C2)*(UNIQUE(Absence!$D$2:$D$365<=D2),""))

Данный подход обеспечивает быстрое подсчитывание уникальных дат, попадающих в заданный диапазон календарной недели.

Альтернативный подход с использованием LET

Можно немного упростить вышеобозначенную формулу с использованием функции LET для повышения ее удобочитаемости и поддержки:

=LET(_abs,UNIQUE(Absence!$D$2:$D$365),
_FILTER,FILTER(_abs,(_abs>=C2)*(_abs<=D2),""),
COUNT(_FILTER))

Эти формулы нужно будет протянуть вниз по колонкам, чтобы они применялись ко всем неделям.

Использование ISO-нумерации недель

Если вы хотите использовать стандартную нумерацию недель ISO, вы можете сделать это следующим образом:

=SUM(--(ISOWEEKNUM(UNIQUE(Absence))=P2))

Фильтрация по определенным дням недели

Если необходимо учитывать только рабочие дни (например, с понедельника по пятницу), можно применить следующий пример:

=LET(ua,UNIQUE(Absence),SUM((ISOWEEKNUM(ua)=P2)*NETWORKDAYS.INTL(ua,ua,"0000011")))

Заключение

Автоматизация обработки данных о датах отсутствия в Excel может существенно улучшить производительность анализа. Создание динамичной формулы для подсчета уникальных дат позволит вам быстро и эффективно отображать информацию о статусе доступности сотрудников. Следуя инструкциям и рекомендациям, представленным в данной статье, вы сможете легко внедрить решение, соответствующее вашим потребностям.

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *