Страницы: 1
RSS
Заливка интервала дат в календаре
 
Доброго времени!
Может подскажите ответ на вопрос.
Суть такова, создал календарь на год, по задумке в нем (календаре) должны отображаться события (дни рождения, отпуск, праздники и т.д.). Вроде все получается, но вот незадача:
Код
=И(НЕ(B5="");НЕ(ЕОШИБКА(ПОИСКПОЗ(B5;'График отпусков'!D$20:E$20;0))))

при использовании данной формулы все работает при условии, что интервал дат составляет один день, например с 01 по 02.01.2021.
А вот если интервал дат составляет несколько дней, например с 25.06.2021 по 19.07.2021 (отпуск), то в календаре окрашивается только первый и последний день (в прикрепленном файле, я надеюсь все будет понятно).
Как быть, подскажите пожалуйста?
Спасибо.
 
см.вложение
на листе График отпусков пишете график отпусков
на листе Календарь! - смотрите диаграмму Ганта по отпускам
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, спасибо большое, но это немного не то, что я хочу реализовать.
Меня интересует вопрос - какую формулу применить именно в календаре из моего примера.
Я пробовал использовать формулу выше, но:
1. отображается только 1 и последний день отпуска, а мне нужно закрасить весь отпуск.
2. а если у человека, например две части отпуска, то как это реализовать именно в календаре.
3. а если в отпуск идет несколько человек + их отпуска пересекаются, то как это реализовать именно в календаре.

Сам график отпусков у меня получился, может не так элегантно как у Вас. Спасибо.
 
Цитата
graffserg написал:
а если в отпуск идет несколько человек + их отпуска пересекаются, то как это реализовать именно в календаре
а как именно это должно выглядеть именно в календаре; вы же так и не показали как должно быть
Соблюдение правил форума не освобождает от модераторского произвола
 
Код
=И(НЕ(B5="");НЕ(ЕОШИБКА(ПОИСКПОЗ(B5;'График отпусков'!D$4:E$4;0))))

Почему, в примере видно, что закрашивается только одна дата (желтым).
 
Цитата
graffserg написал:
Почему,
потому что ищете конкретную дату, вроде это должно быть очевидно...
вариант:
Код
=ЕСЛИ(СУММ((B5>='График отпусков'!$D$4:$D$5)*(B5<='График отпусков'!$E$4:$E$5));1;0)
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik спасибо большое! С отпуском для одного человека все получилось.
Вот, если можно, хочу спросить пару моментов:
1. Возможно ли сделать так, что если в отпуск идут несколько человек и часть отпуска у них пересекается между собой, то в календаре это пересечение отображалось например, ячейка(и) окрашивалась(сь) бы в два цвета.
2. Как организовать данное условное форматирование для государственных праздников? Попробовал применить данную формулу - все праздники пропали. А с предыдущей (моей) все работало, только если продолжительность праздника была с сегодня на завтра.
Спасибо.
 
1. я уже спрашивал как это должно выглядеть в календаре - два цвета так просто не получится, можно конечно замутить какую-нибудь градиентную заливку - но это придется для каждого человека, каждой пересекающейся пары отдельное правило ваять - ущербная идея
2.а по аналогии - что и как вы там сделали я не вижу, ибо файла нет
2.б кроме новогодних каникул государственный праздник занимает ровно один день, и всего таких дней в году ровно 14 - не так сложно вбить даты в явном виде
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik, спасибо!
Вопрос по теме закрыт, буду применять на практике.
 
Всем добрейшего дня/вечера!
Еще раз спасибо за формулу, работает отлично.
Хочу вот еще спросить:
теоретически, вышеуказанная формула при использовании условного форматирования может ссылается на ячейку, которая может содержать, а может и не содержать значения ($D$4:$D$25), а также на ячейку которая содержит формулу (т.е. вроде пустая, но не пустая) ($E$4:$E$25). В случает отсутствия информации в данных ячейках календарь закрашивается полностью.
Подскажите пожалуйста, как можно ее "научить" видеть, что в ячейка содержит формулу, но в то же время не содержит информацию, необходимую для применения условного форматирования.
На форумах нашел похожие темы, пробовал
Код
=ЕСЛИ(СЧЁТЕСЛИ('График отпусков'!E4;">0");"";ЕСЛИ(СУММ((B5>='График отпусков'!$D$4:$D$5)*(B5<='График отпусков'!$E$4:$E$5));1;0))


Код
=ЕСЛИ(СУММ((B5>='График отпусков'!$D$4:$D$5)*(B5<='График отпусков'!$E$4:$E$5);1;">0");"";ЕСЛИ(СУММ((B5>='График отпусков'!$D$4:$D$5)*(B5<='График отпусков'!$E$4:$E$5));1;0))


но так и ни чего не получилось.
Спасибо.
Страницы: 1
Наверх