Как проанализировать данные о датах отсутствия в Excel
Работа с данными в Excel может оказаться сложной задачей, особенно когда нужно интегрировать информацию из разных источников. В этой статье мы рассмотрим, как создать динамическую систему, которая позволит вам анализировать даты отсутствия на основе календарных недель. Мы будем использовать два рабочих листа: один для списка индивидуальных дат отсутствия, а второй для календарных недель с их стартовыми и конечными датами, а также статусом доступности.
Структура файлов и форматирование
В нашем случае у нас есть два листа:
- Список одиночных дат отсутствия (Absence) – в этом листе перечислены даты, когда сотрудники отсутствовали на работе.
- Список календарных недель (Availability) – этот лист содержит даты начала и окончания недели, а также столбец, в котором будет отображаться статус по количеству отсутствий.
Формат даты представлен в виде "год-день".
Цель и алгоритм работы
Мы стремимся создать колонку 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 может существенно улучшить производительность анализа. Создание динамичной формулы для подсчета уникальных дат позволит вам быстро и эффективно отображать информацию о статусе доступности сотрудников. Следуя инструкциям и рекомендациям, представленным в данной статье, вы сможете легко внедрить решение, соответствующее вашим потребностям.