Формула для графика отпусков в excel

Время на прочтение
3 мин

Количество просмотров 226K

Работаю небольшим руководителем и имею в обязанностях составление и поддержание в актуальном виде графика отпусков своего отдела. Данный график составляется в конце года на следующий год и предоставляется в отдел кадров организации. При этом отдел кадров требует предоставлять его в формате таблицы-списка, но самому мне для работы нужен формат наглядного графика. К тому же в связи с постоянными переносами отпусков сотрудников данный график необходимо поддерживать актуальным.

Не делать ненужную работу и все что можно автоматизировать для меня жизненный принцип. В данной статье хочу поделится опытом создания 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-й строки).

На этом все. Благодарю за внимание

За окнами жара, в разгаре сезон отпусков. Сегодняшняя статья будет актуальна, так как покажем вам, как проверить сколько сотрудников работает в данный день, и достаточно ли их. Ответ на этот вопрос хотел узнать один из читателей сайта.

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

Как сделать шаблон графика отпусков в Excel

Предположим, что в отделе продаж работают 15 человек. Хотим, чтобы ежедневно работало минимум 60% от общего количества, то есть 9 человек. Если это условие не выполняется – шаблон графика отпусков в Excel должен об этом сообщить (напишет, что есть нехватка и закрасит линии границ ячейки красным цветом).

Готовый шаблон выглядит так (скачать в конце статьи):

график отпусков.

Теперь покажем вам, как это сделать!



Исходный вид шаблона графика отпусков на начальном этапе разработки:

вид шаблона графика.

Во-первых, мы посчитаем в графике сколько людей числиться в нашем отделе. Введите следующую формулу в ячейку C1:

=СЧЁТЗ(A9:A23)

СЧЁТЗ.

Теперь давайте посчитаем, сколько человек составляют 60% от количества сотрудников отдела (все кроме тех, кто ушел в отпуск). Введите следующую формулу в ячейку C3:

=ОКРУГЛВВЕРХ(C1*C2;0)

ОКРУГЛВВЕРХ.

Хорошо. Следующим шагом будет написание формулы, которая будет определять работает ли данный сотрудник в данный день или находится в отпуске. Чтобы быстро вставить эту формулу автоматизированный в график отпусков для всех сотрудников и для всех дней, выполните следующие шаги:

  1. Выделите диапазон ячеек E9:R23.
  2. Нажмите клавишу F2 на клавиатуре и введите следующую формулу:
  3. =ЕСЛИ(И(E$8>=$B9;E$8<=$B9+$D9-1);»В отпуске»;»На работе»)

  4. Подтвердите ввод формулы, используя комбинацию клавиш Ctrl + Enter. В результате все ячейки диапазона E9:R23 на графике заполнятся формулой:
  5. В отпуске На работе.

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

  1. Снова выделите диапазон ячеек E9:R23.
  2. Выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Правила выделения ячеек»-«Равно».
  3. Правила выделения ячеек.

  4. В появлявшемся окне «Равно» введите значение и выберите параметр так как указано ниже на рисунке:
  5. Равно.

  6. 4 Нажмите ОК.
  7. Условное форматирование.

Затем мы посчитаем, сколько людей работает в этот день. Для этого заполните диапазон ячеек E7:R7 такой формулой:

=СЧЁТЕСЛИ(E9:E23;»На работе»)

СЧЁТЕСЛИ.

Этому же диапазону (E7:R7) присвоим свое правило условного форматирования. Надо сделать красные границы, которые видны на рисунках выше. Каждый раз, когда в данный день слишком мало сотрудников (менее 9 в нашем примере), Excel должен сделать красную границу вокруг ячейки с количеством сотрудников в определённый день. Чтобы это сделать нам необходимо:

  1. Выделите диапазон E7:R7 и выберите инструмент «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Правила выделения ячеек»-«Меньше»:
  2. Стили форматирования.

  3. В появившемся окне «Меньше» введите значение и выберите параметр так как указано ниже на рисунке:
  4. Меньше.

  5. Нажмите ОК. В результате мы получим:
  6. правило условного форматирования.

Давайте теперь определим, какой это процент от всего коллектива. Используем для этого формулу, которую необходимо ввести в диапазон ячеек E6R6:

Используем формулу.

И, наконец: информация о том, есть ли нехватка сотрудников или всё хорошо? И формула для ячеек E5:R5:

=ЕСЛИ(E6<$C$2;»нехватка»;»хорошо»)

ЕСЛИ нехватка хорошо.

Наконец, мы имеем такой результат:

готов шаблон графика отпусков.

На рисунках показываем только часть данных. В прикреплённом к этой статье файле есть место для большего количества дней. Хотя мы убеждены, что вам понадобится ещё больше.

Шаблон графика отпусков в Excel скачать бесплатно

Знаете ли вы кого-то, кому пригодится представленная выше информация? Отправьте этому человеку электронное письмо со ссылкой на эту статью. Скорее всего, он с удовольствием ей воспользуется.

ФОРМУЛА ДЛЯ РАСЧЕТА КОНЕЧНОЙ ДАТЫ В ГРАФИКЕ ОТПУСКОВ

Me4ta

Дата: Воскресенье, 06.10.2019, 11:41 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Доброго всем дня, помогите, пожалуйста, с формулой. Задание, посчитать конечную дату отпуска, имея начальную дату и количество дней. На просторах интернета нашла формулу, но мне надо, чтобы формула «перескакивала» праздничные дни и они не считались, а у меня в ячейке с конечной датой стоит 9 мая, а надо 10 мая (отпуск на 14 дней с 24.04.2019, два выходных, 1 и 9 мая), а ячейки G-I суммировались отдельно, потому что в них праздничные дни не играют значения. Сразу скажу, я не программист, просто прошу помочь внести необходимые изменения.
МОЖЕТ ЕСТЬ ДРУГАЯ ФОРМУЛА, Я УЖЕ НЕДЕЛЮ БЬЮСЬ, на работе программиста нет, очень надеюсь на вашу помощь.

К сообщению приложен файл:

_1.xlsx
(17.0 Kb)

 

Ответить

bmv98rus

Дата: Воскресенье, 06.10.2019, 12:36 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4009


Репутация:

760

±

Замечаний:
0% ±


Excel 2013/2016

а у меня в ячейке с конечной датой стоит 9 мая, а надо 10 мая (отпуск на 14 дней с 24.04.2019

Почему? 14 календарных дней с учетом праздничного 1го мая до 8 включительно, а так как 9е праздник то и будет 9. а выход на работу 10го.

а ячейки G-I суммировались отдельно, потому что в них праздничные дни не играют значения.

поясните и лучше на примере.


Замечательный Временно просто медведь , процентов на 20.

 

Ответить

Me4ta

Дата: Воскресенье, 06.10.2019, 12:46 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

bmv98rus,

 

Ответить

Me4ta

Дата: Воскресенье, 06.10.2019, 12:49 |
Сообщение № 4

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

bmv98rus, Мне надо, чтобы в ячейке высветилось 10 мая, а не 9. А ячейки с отпуском (донорский, учебный и бесплатный) считали праздники, как за обычные календарные дни

 

Ответить

Me4ta

Дата: Воскресенье, 06.10.2019, 12:57 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Изначально была формула такая:

Код

=ЕСЛИ(J13>0;J13+C13)-1-СУММПРОИЗВ(-(—ТЕКСТ(гос.праздники!$F$3:$G$14-J13;»0;99″)<=(C13)));»»)

, и я уже сама добавила диапазон

Код

=ЕСЛИ(J13>0;J13+(C13+D13+E13+F13+G13+H13+I13)-1-СУММПРОИЗВ(-(—ТЕКСТ(гос.праздники!$F$3:$G$14-J13;»0;99″)<=(C13+D13+E13+F13+G13+H13+I13)+1));»»), +1

, чтобы выйти на 10 мая добавила вручную уже. и потом убрала три ячейки в конце. Я просто не знаю, куда их деть. Попробовала вот так

Код

=ЕСЛИ(J13>0;J13+(C13+D13+E13+F13)-1-СУММПРОИЗВ(-(—ТЕКСТ(гос.праздники!$F$3:$G$14-J13;»0;99″)<=(C13+D13+E13+F13)+1));»»)+G13+H13+I13

, считает все нормально, только в пустых ячейках теперь стоит#ЗНАЧ!

Сообщение отредактировал Me4taВоскресенье, 06.10.2019, 14:41

 

Ответить

Me4ta

Дата: Воскресенье, 06.10.2019, 13:03 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

bmv98rus, Прошу прощения там еще 28 апреля выходной

Сообщение отредактировал Me4taВоскресенье, 06.10.2019, 13:08

 

Ответить

Me4ta

Дата: Воскресенье, 06.10.2019, 13:19 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

bmv98rus, Наверное я что-то не так объясняю, в кои-то веки кто-то откликнулся и опять тишина, не все в этой жизни — программисты, я же не прошу изобретать велосипед, всего-навсего прошу внести корректировку в формулу, но наверное это неосуществимо. Очень жаль.

 

Ответить

bmv98rus

Дата: Воскресенье, 06.10.2019, 13:51 |
Сообщение № 8

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4009


Репутация:

760

±

Замечаний:
0% ±


Excel 2013/2016

в кои-то веки кто-то откликнулся и опять тишина

так выходные.
Ну допустим с 10мая разобрались, я проглядел. Теперь с доп. днями. Нужно понимать, как они плюсуются. Есть существенная разница их считать п конце или в начале, ведь от этого зависит попадание праздничных дней на очередной или дополнительный день отпуска.


Замечательный Временно просто медведь , процентов на 20.

 

Ответить

Me4ta

Дата: Воскресенье, 06.10.2019, 14:37 |
Сообщение № 9

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

bmv98rus, Спасибо, что напомнили, конечно это надо учесть, ведь они могут стоять и в начале месяца перед оплачиваемым отпуском. просто как-то обозначить этот диапазон ячеек, чтобы он не ссылался на праздники.

Сообщение отредактировал Me4taВоскресенье, 06.10.2019, 14:43

 

Ответить

bmv98rus

Дата: Воскресенье, 06.10.2019, 14:51 |
Сообщение № 10

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4009


Репутация:

760

±

Замечаний:
0% ±


Excel 2013/2016

они могут стоять и в начале месяца

и как это определить? И так и не понятно, в чем проблема, какие ошибки ….


Замечательный Временно просто медведь , процентов на 20.

 

Ответить

Me4ta

Дата: Воскресенье, 06.10.2019, 14:57 |
Сообщение № 11

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

bmv98rus, Я зависла, буду просто отслеживать, по программе

можно хотя бы выйти на 10 мая?

 

Ответить

Me4ta

Дата: Воскресенье, 06.10.2019, 15:02 |
Сообщение № 12

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Замечательный Временно просто медведь , процентов на 20.

По-ходу я не временно, а постоянно:)

 

Ответить

bmv98rus

Дата: Воскресенье, 06.10.2019, 15:19 |
Сообщение № 13

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4009


Репутация:

760

±

Замечаний:
0% ±


Excel 2013/2016

можно хотя бы выйти на 10 мая?

ну так в файле первого поста так и есть.


Замечательный Временно просто медведь , процентов на 20.

 

Ответить

Me4ta

Дата: Воскресенье, 06.10.2019, 15:23 |
Сообщение № 14

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

bmv98rus, Да. потому что я руками вбила +1, а автоматом нельзя ничего в формулу добавить?

 

Ответить

Pelena

Дата: Воскресенье, 06.10.2019, 15:32 |
Сообщение № 15

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Не особо вникала, но, может, так подойдёт

Код

=РАБДЕНЬ.МЕЖД(J6;СУММ(C6:I6)-1;»0000000″;гос.праздники!$F$3:$H$14)

К сообщению приложен файл:

_1-5-.xlsx
(18.5 Kb)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

bmv98rus

Дата: Воскресенье, 06.10.2019, 16:04 |
Сообщение № 16

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4009


Репутация:

760

±

Замечаний:
0% ±


Excel 2013/2016


Лена, с очень малой поправкой.

Код

=WORKDAY.INTL(J6;SUM(C6:F6)-1;»0000000″;гос.праздники!$F$3:$H$14)+SUM(G6:I6)


Замечательный Временно просто медведь , процентов на 20.

 

Ответить

Pelena

Дата: Воскресенье, 06.10.2019, 16:45 |
Сообщение № 17

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Me4ta

Дата: Воскресенье, 06.10.2019, 17:43 |
Сообщение № 18

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

bmv98rus, Pelena, ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!!!!! hands hands hands hands hands hands НЕУЖЕЛИ МОИ МУЧЕНИЯ ЗАКОНЧИЛИСЬ!!! ЭТО РАБОТАЕТ!!!! hands hands hands hands

 

Ответить

 

CarBon

Пользователь

Сообщений: 30
Регистрация: 27.08.2019

Здравствуйте!
Необходима формула для расчёта даты окончания отпуска, когда вручную вводится дата начала отпуска и количество дней отпуска.
При этом формула автоматически должна учитывать нерабочие праздничные дни, если они выпадают на период отпуска, и ставить дату с учётом того,что в соответствии со статьёй 120 ТК  РФ «Нерабочие праздничные дни, приходящиеся на период ежегодного основного или ежегодного дополнительного оплачиваемого отпуска, в число календарных дней отпуска не включаются».
Например, если работник уходит в отпуск 01.03.2022 на 14 дней, то программа должна вывести дату окончания отпуска не 14.03.2022, а 15.03.2022, так как 08.03.2022 — нерабочий праздничный день.
Пример приведён в таблице графиков отпусков, даты окончания, где необходима формула обозначены жёлтым цветом
Список нерабочих  праздничных дней с учётом региональных нерабочих праздничных дней  приведены правее таблицы и выделены синим цветом.

Каждое лето приходится согласовывать график отпусков отдела. У каждого свои планы на отдых, но работа должна идти своим чередом. Поэтому решено было, что каждую неделю в отделе должно быть минимум 2 человека. Рассказываю, как я нарисовал график отпусков в Excel, который автоматически найдет нестыковки и поможет их исправить.

Решение задачи

В нашем пример будет 5 человек. В отпуск они идут два раза за лето, по 2 недели подряд. Начнем с классической таблицы. Конец периода считаем по формуле: начало периода плюс продолжительность отпуска, в днях.

Теперь строим таблицу по неделям. Она будет похожа на диаграмму Ганта — закрашенные прямоугольники, длина которых зависит от длительности отпусков. Я расположил ее справа от таблицы.

Для начала построим колонки недель. В первые две ячейки ставим начало недели: 14.06, 21.06. Далее протягиваем мышкой, используя автозаполнение.

Теперь строим саму диаграмму. Вот формула, которую нужно напечатать в ячейке (3, 8):

=ЕСЛИ(ИЛИ(И(R2C>=RC2;R2C<=RC4);И(R2C>=RC5;R2C<=RC7));1;0)

Расшифрую:

Если дата начала недели попадает в первый или второй интервал отпуска, ставится цифра 1, иначе — 0. Обратите внимание, что фиксируются только номера колонок. Это нужно для протягивания формулы по всем ячейкам диапазона. Получилась таблица из 1 и 0. Выделяем ее и накладываем Условное форматирование.

Получается вот такая картина.

Добавим последний штрих — контроль конфликтов отпусков. Для этого в нижней строке суммируем число значений 1 в колонке. Обычной формулой СУММА(). А потом на эту строку тоже накладываем Условное форматирование. Только в этот раз нам нужно покрасить красным значения, большие 3. Они соответствуют неделям, когда на работе остается меньше 2-х человек.

Все, график готов!

На построение потрачено не больше 10 минут, а сэкономлены часы труда. Буду использовать этот график и в следующем году. Теперь на его составление будет тратиться всего 2 минуты: даты подправить и новые границы отпусков ввести.

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

Понравилась статья? Поделить с друзьями:
  • Формула для значений между excel
  • Формула для графика в excel онлайн
  • Формула для заполнения таблицы в excel
  • Формула для гиперссылок excel
  • Формула для заполнения строки в excel