Работаю небольшим руководителем и имею в обязанностях составление и поддержание в актуальном виде графика отпусков своего отдела. Данный график составляется в конце года на следующий год и предоставляется в отдел кадров организации. При этом отдел кадров требует предоставлять его в формате таблицы-списка, но самому мне для работы нужен формат наглядного графика. К тому же в связи с постоянными переносами отпусков сотрудников данный график необходимо поддерживать актуальным.
Не делать ненужную работу и все что можно автоматизировать для меня жизненный принцип. В данной статье хочу поделится опытом создания MS EXCEL файла графика. Возможно полученный шаблон или данный опыт окажется полезным и вам.
Для тех, кому данный нужен шаблон и кто не хочет особо заморачиваться тем как это устроено — сразу Ссылка для просмотра и скачивания.
Для интересующихся конструкцией нижеследующее описание.
Итак. Требуемый кадровиками формат изображен на картинке ниже(все фамилии и должности вымышленные):
Особенности данного формата:
1. В таблицу отдельными строками включаются отдельные периоды отпусков
2. В таблице указываются даты начала отпуска и продолжительность
3. Список упорядочен по алфавиту фамилий сотрудников и по возрастанию дат начала
График отпусков моих сотрудников нужен и мне, но я бы хотел иметь его в виде наглядного календарного графика (диаграммы), где вдоль оси времени отражаются периоды отпусков сотрудников. И я его в итоге и сделал — вот таким:
Для создания графика такой формы я использовал встроенный в MS EXCEL конструктор диаграмм и тип диаграммы «Линейчатая с накоплением».
Для того чтобы горизонтальная ось диаграммы имела вид шкалы времени нужны следующие настройки
Максимум и минимум соответствуют числовым значениям дат начала и конца года. Чтобы семидневная сетка совпадала с реальными неделями за дату начала года лучше брать не 01.01, а ближайший к этой дате понедельник.
В качестве исходных данный формирования графика используется таблица, расположенная над графиком. Область печати страницы настроена так, чтобы она не выводилась.
На самом деле диаграмма отражает не только периоды отпусков, но и разрывы между ними (настройками выполнено отображение отпусков зеленым цветом заливки, а разрывов — без заливки то есть прозрачными).
Это отображаемый прозрачным период от начала времен до даты начала первого отпуска в году. Используется значение в столбце «Начало1».
Это отображаемый зеленым первый отпуск. Используется значение в столбце «Дней 1» — продолжительность первого периода отпуска
У меня столбец «Дней 1» рассчитывается по формуле:
Плюс один день потому, что дата окончания отпуска — это последний его день, а не первый рабочий.
Это отображаемый прозрачным период от окончания первого отпуска до начала второго.
Также считается формулой, а так как данной значение не имеет пользовательской ценности — столбец в таблице максимально сужен.
Тут хочется просто сказать «ну и так далее...», в общем зеленые периоды отпусков строятся аналогично ряду 2, а прозрачные промежутки между ними — аналогично ряду 3. Для моей задачи хватило 5-ти периодов — это текущее ограничение шаблона, которое можно преодолеть, продолжая таблицу в ширину (насколько у вас хватит терпения).
Им же нужен просто список!?
Не держать одни и те же данные в 2-х местах, не создавать возможности их расхождения — для меня дело чести. Пусть и пришлось потратить время, но лучше один раз ввести формулы чем каждый раз править данные. Тут никаких сложностей нет — просто ссылки с листа, содержащего форму для кадровиков на ячейки все в той же исходной таблице.
Такими ссылками заполнены в каждой строке ячейки с В по Е. Для каждой строки из исходной таблицы (каждого сотрудника) созданы соответственно числу возможных отпускных периодов — 5 строк в данной таблице. Например поле E «Кол-во календ. дней», для первого сотрудника заполнено:
1-я строка — "=График!G5"
2-я строка — "=График!K5"
3-я строка — "=График!O5"
4-я строка — "=График!S5"
5-я строка — "=График!W5"
Для следующего сотрудника ссылки будут на те же столбцы и на следующую строку.
(это довольно трудоемко было заполнять из за того, что форма транспонирована, а как копировать формулы с транспонированием я не разобрался)
Обратите внимание, что в столбце Е стоит фильтр. Он нужен для того, что бы выводить только заполненные периоды отпусков (настроено не выводить 0).
Еще осталось автоматизировать нумерацию строк (первый столбец). В первой строке руками проставлена цифра «1», для остальных использую формулу "=A6+ЕСЛИ(E7=0;0;1)" (на примере 2-й строки).
Не делать ненужную работу и все что можно автоматизировать для меня жизненный принцип. В данной статье хочу поделится опытом создания MS EXCEL файла графика. Возможно полученный шаблон или данный опыт окажется полезным и вам.
Для тех, кому данный нужен шаблон и кто не хочет особо заморачиваться тем как это устроено — сразу Ссылка для просмотра и скачивания.
Для интересующихся конструкцией нижеследующее описание.
Возникновение задачи
Итак. Требуемый кадровиками формат изображен на картинке ниже(все фамилии и должности вымышленные):
Особенности данного формата:
1. В таблицу отдельными строками включаются отдельные периоды отпусков
2. В таблице указываются даты начала отпуска и продолжительность
3. Список упорядочен по алфавиту фамилий сотрудников и по возрастанию дат начала
График — это график
График отпусков моих сотрудников нужен и мне, но я бы хотел иметь его в виде наглядного календарного графика (диаграммы), где вдоль оси времени отражаются периоды отпусков сотрудников. И я его в итоге и сделал — вот таким:
Как это сделано
Для создания графика такой формы я использовал встроенный в MS EXCEL конструктор диаграмм и тип диаграммы «Линейчатая с накоплением».
Для того чтобы горизонтальная ось диаграммы имела вид шкалы времени нужны следующие настройки
Максимум и минимум соответствуют числовым значениям дат начала и конца года. Чтобы семидневная сетка совпадала с реальными неделями за дату начала года лучше брать не 01.01, а ближайший к этой дате понедельник.
В качестве исходных данный формирования графика используется таблица, расположенная над графиком. Область печати страницы настроена так, чтобы она не выводилась.
На самом деле диаграмма отражает не только периоды отпусков, но и разрывы между ними (настройками выполнено отображение отпусков зеленым цветом заливки, а разрывов — без заливки то есть прозрачными).
Первый ряд
Это отображаемый прозрачным период от начала времен до даты начала первого отпуска в году. Используется значение в столбце «Начало1».
Второй ряд
Это отображаемый зеленым первый отпуск. Используется значение в столбце «Дней 1» — продолжительность первого периода отпуска
У меня столбец «Дней 1» рассчитывается по формуле:
Плюс один день потому, что дата окончания отпуска — это последний его день, а не первый рабочий.
Третий ряд
Это отображаемый прозрачным период от окончания первого отпуска до начала второго.
Также считается формулой, а так как данной значение не имеет пользовательской ценности — столбец в таблице максимально сужен.
Последующие ряды
Тут хочется просто сказать «ну и так далее...», в общем зеленые периоды отпусков строятся аналогично ряду 2, а прозрачные промежутки между ними — аналогично ряду 3. Для моей задачи хватило 5-ти периодов — это текущее ограничение шаблона, которое можно преодолеть, продолжая таблицу в ширину (насколько у вас хватит терпения).
А как быть с кадровиками?
Им же нужен просто список!?
Не держать одни и те же данные в 2-х местах, не создавать возможности их расхождения — для меня дело чести. Пусть и пришлось потратить время, но лучше один раз ввести формулы чем каждый раз править данные. Тут никаких сложностей нет — просто ссылки с листа, содержащего форму для кадровиков на ячейки все в той же исходной таблице.
Такими ссылками заполнены в каждой строке ячейки с В по Е. Для каждой строки из исходной таблицы (каждого сотрудника) созданы соответственно числу возможных отпускных периодов — 5 строк в данной таблице. Например поле E «Кол-во календ. дней», для первого сотрудника заполнено:
1-я строка — "=График!G5"
2-я строка — "=График!K5"
3-я строка — "=График!O5"
4-я строка — "=График!S5"
5-я строка — "=График!W5"
Для следующего сотрудника ссылки будут на те же столбцы и на следующую строку.
(это довольно трудоемко было заполнять из за того, что форма транспонирована, а как копировать формулы с транспонированием я не разобрался)
Обратите внимание, что в столбце Е стоит фильтр. Он нужен для того, что бы выводить только заполненные периоды отпусков (настроено не выводить 0).
Еще осталось автоматизировать нумерацию строк (первый столбец). В первой строке руками проставлена цифра «1», для остальных использую формулу "=A6+ЕСЛИ(E7=0;0;1)" (на примере 2-й строки).
На этом все.
Благодарю за внимание
Комментарии (0)