Рвав-рвав, собака Смайл на связи!
Представляем вашему вниманию свою 2-ю разработку комплекта отчетности «Офисная жизнь» — отчет «Отчет об отсутствии сотрудников», иллюстрирующий доступность сотрудников в плане выполнения поставленных задач.

Отчет реализован при помощи DAX, Power Query, и построен на базе производственного календаря (см. отчет Производственный календарь).
Помимо распределения нерабочих дней согласно календарю, содержит следующие расчеты, которые можно получить по каждому работнику:
- Количество рабочих дней.
- Количество дней отпуска.
- Количество взятых отгулов.
- Количество дней по больничному листу.
Все показатели рассчитаны при помощи мер на уровне DAX, а исходный набор дат получен при помощи Power Query.
Разработка содержит 2 листа:
- Лист «Отчет» — собственно, сам отчет, содержащий сводные и детальные данные по работникам;
- Лист «Информация» — памятка пользователя.
Разработка содержит 2 листа:
- Лист «Отчет» — собственно, сам отчет, содержащий сводные и детальные данные по работникам;
- Лист «Информация» — памятка пользователя.
Используемые элементы:
- Скрывающаяся панель фильтров (стандартный функционал).
- Кнопки.
- Иконки.
- В качестве основного элемента используется «Матрица», а дополнительного — «Карточка».
- Прочие украшательства — «Текстовое поле», «Фигуры».
Процесс разработки:
- Для указания базового промежутка времени на уровне Power Query были созданы параметры «Начало периода» и «Конец периода» — это даты начала и окончания периода, которые выведены в название отчета.
- Создана таблица «Меры» — техническая таблица, созданная для удобства.
- Создана таблица «Параметры» — содержит параметры отчета для указания необходимого отрезка времени.
- Создана таблица «Праздники» — таблица настройки, содержащая список российских праздников.
- Создана таблица «Переносы» — таблица настройки, содержащая даты так называемых «перенесенных» дней.
- Создана таблица «Период отсутствия» — содержит набор исходных данных, который имеет минимально необходимую структуру, а именно: фамилию, имя и отчество сотрудника, начальную и конечную даты его отсутствия, а также его причину.
- Создана таблица «Легенда» — таблица, являющаяся фильтром, и описывающая цветовое обозначение.
- Создана таблица «Сотрудники» — таблица, представляющая собой справочник сотрудников.
- Создана таблица «Отсутствие по датам» — таблица содержит перечень дат отсутствия и причину по каждому сотруднику, в виде, при котором каждая строка таблицы представляет собой одну конкретную дату.
- Создана таблица «Общий список дат» — таблица содержит общий перечень дат за указанный период по каждому сотруднику, в виде, при котором каждая строка таблицы представляет собой одну конкретную дату.
Рвав-рвав, на этом работы с Power Query завершены.
- На уровне модели данных создана таблица «Календарь» — базовая таблица, определяющая набор дат для расчета.
- Следующим этапом является проверка связей получившейся модели данных, и их корректировка в случае необходимости. Схема модели представлена ниже:

- Затем, при помощи DAX, начинаем формировать нужные аналитические разрезы, например, производим деление общего массива данных, сформированного в таблице «Общий список дат» на дополнительные составляющие: рабочие дни, нерабочие дни, и, собственно, те дни, когда сотрудник должен быть на рабочем месте, но при этом он отсутствует по обозначенной причине.
- Далее, при помощи мер, рассчитываются сводные показатели по компании: рабочее время, время сотрудника, соответствующее отпуску, проведенное на больничном, или в отгулах.
- Когда все готово, можно приступать к визуализации данных;
- Последний шаг — это дизайн, но тут уже раздумий не надо, поскольку все оформлено в соответствии со стилем, используемым в предыдущих разработках.
Особенности разработки:
- Работа и функционал созданного календаря подробно описана в предыдущей статье, все преимущества сохранены.
- При разработке сделано допущение, что сотрудник либо присутствует на работе, либо нет. Соответственно, время отсутствия сотрудника рассчитывается в днях. Частичное отсутствие в офисе (например, 1 час) не реализовано по идеологическим соображениям, поскольку нужная степень детализации может завести очень далеко. Все зависит от того, с какой точностью нужна информация, и насколько вы готовы обеспечить эту самую точность.
- Как вы, наверное, уже поняли из описания выше, поскольку мы визуализируем все рабочее время сотрудника за указанный период времени (например, год), то, в зависимости от количества сотрудников на каждую единицу создается массив в 365 записей. Несмотря на это, простота модели обеспечивает быстрое обновление данных, и даже при 1000 сотрудников у вас не возникнет никаких проблем.
- При разработке отчета данные исходного набора значений вносились непосредственно в Power BI (таблица «Период отсутствия»), дабы конечный файл не зависел от внешних источников. Переключение на внешние источники данных не составляет проблем.
Рвав-рвав, как я уже говорил, удобство и простота — наше кредо!
На этом все.
Ушел проверять миску, вдруг чего изменилось…
Ваш Смайл