Страницы: 1
RSS
Автоматическое формирование календаря на указанный месяц с заполнением ячеек формулами
 
Имеется формула рабочего графика с несколькими условиями. Формула универсальная и выглядит она так: =IF($E$5:$AJ$5=6;"В";IF($E$5:$AJ$5=7;"В";IF(AH$6=$E$4;"В";IF(AH$6=$F$4;"В";IF(AH$6=$F$4+1;"В";IF(AH$6=$G$4;"В";IF(AH$6+1=$G$4;"15";IF(AH$6=$H$4;"В";IF(AH$6=$H$4+1;"В";IF(AH$6=$I$4;"В";IF(AH$6+1=$I$4;"15";IF(AH$6=$J$4;"В";IF(AH$6+1=$J$4;"15";IF(AH$6=$K$4;"В";IF(AH$6+1=$K$4;"В";IF(AH$6=$L$4;"В";IF(AH$6+1=$L$4;"15";IF(AH$6=$M$4;"В";IF(AH$6+1=$M$4;"15";IF(AH$6=$N$4;"В";IF(AH$6=$N$4+1;"В";IF(AH$6=$O$4;"В";IF(AH$6+1=$O$4;"15";IF(AH$6=$P$4;"15";"16")))))))))))))))))))))))). Имеются ссылки на ячейки с датами. Работала хорошо, но вот столкнулся с проблемой - в нескольких ячейках не сработала. Возможно кто-нибудь сталкивался?
 
файл показываем.
 
СерыйЯ, какой смысл вкладывается в условие IF($E$5:$AJ$5=6; ?
Это формула массива, которая вставлена в диапазон? Или имеется в виду IF(OR($E$5:$AJ$5=6); , т.е. одна из ячеек диапазона равна 6?
Изменено: Казанский - 25.04.2018 10:54:33
 
Цитата
СерыйЯ написал:
Возможно кто-нибудь сталкивался?
я с таким сталкивался. если формула не возвращает нужный результат:
1. скорее всего "криво" написана сама формула
2. могут быть ошибки а данных

и выкладывая файл не забудьте описать задачу, которую решаете
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
В ячейке А3 меняется дата, в строке 1 праздничные выходные. Есть условные форматирования по заливке ячеек серым цветом. Обратите внимание на столбцы Z  и AB начиная с 58 ряда
 
Ігор Гончаренко, формулу написал 3 года назад и успешно пользуюсь, меняю каждый год лишь праздники. Правда было в прошлом году не сработала на 1 января у всех, переписал вручную заново - сработало. А тут лишь в нескольких ячейках условия разошлись
 
СерыйЯ, не критики ради, а оптимизации для
многочисленные сравнения с праздничными днями можно уложить в одно COUNTIF(A1:AE1;A3)>0, единственное что останется понять это принцип смещения на 1 день каков IF(A$3=$B$1+1;"В"; или оставить как есть
IF($A$2:$AE$2=6;"В";IF($A$2:$AE$2=7  - мне тоже интересно в чем смысл $A$2:$AE$2, но IF(A$2>=6;"В"; - всего одно условие правда 6 меняется от 1 до 6, значит оставим. У вас или В или "" при выполении любого из условий значит заменить можно на OR
Уже имеем например для A6 и универсальности сранения с 1,2,3,4,5,6 более короткую формулу.
=IF(OR(A$2=6;A$2=7;COUNTIF($A$1:$AE$1;A$3);A$3=$B$1+1;A$3=$D$1+1;A$3=$G$1+1;A$3=$J$1+1);"В";"16")  в двух других строках останется поменять
"В";"16" на "";"8" и  "";"12" соответвенно
Изменено: БМВ - 25.04.2018 12:14:53
По вопросам из тем форума, личку не читаю.
 
vikttur, Виктор вы чего кому вменить собрались? :-)
Цитата
vikttur написал:
завменят.
По вопросам из тем форума, личку не читаю.
 
БМВ, я не боюсь критики, но я только учусь. По мере надобности, но учусь. IF($A$2:$AE$2=6;"В";IF($A$2:$AE$2=7 было написано к строчке, так как я не имел понятия о других функциях. Я постепенно комбинировал прочитанные статьи и набирал почти методом тыка, задавая условие каждому значению. Сейчас разбираю Вашу формулу и мне потихоньку глаза открываются, начинаю понимать что к чему. Действительно IF(OR(A$2=6;A$2=7 короче немного, а касательно праздников так это вообще красота, где Вы раньше были))) и я вместе с Вами))). Осталось теперь разобраться куда впихнуть значение сокращенного рабочего времени перед празниками
 
а не возникало мыслей за эти годы, что бывают еще переносы рабочих дней, когда рабочий день - становиться выходным, а каккя-то суббота - рабочей
.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, у нас не бывает переносов выходных. Я работаю в больнице и у нас не практикуют переносы выходных. все четко по календарю. Вот 30 апреля в понедельник все дружно на работу :(  
 
Фактически у вас проблема в том, что используя многочисленные вложенные  IF вы делаете формулу сложной, трудно читаемой и возможно не видите ошибки, я уж не говорю о так заинтересовавшем нас с Казанский, $A$2:$AE$2 .
Ну попробуйте забыть что у вас есть, и с нуля подумать что вы делает, ведь по сути у вас определение выходного дня исходя из дня недели и списка праздничных дней, добавочное условие, это ваш сокращенный день перед праздником. А вот только перед праздником или перед выходным днем который с праздником объединён?
По вопросам из тем форума, личку не читаю.
 
БМВ, я не спорю, у меня много значений IF,  так как я просто не смог ничего больше найти подходящего. Я специалист другой области. И я благодарен Вам за подсказку. Касательно сокращенного дня перед празником, то это определенная група людей и только рабочий день предшествует праздничному (кроме суботы). Поэтому вставка IF(A$3+1=$I$1;"15" и ей подобные. Пытаюсь приспособить к вашему варианту, но выходит слишком много аргументов.
 
тему можно назвать:
автоматическое формирование календаря на указанный месяц с заполнением ячеек формулами
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
СерыйЯ написал:
Поэтому вставка IF(A$3+1=$I$1;"15" и ей подобные. Пытаюсь приспособить к вашему варианту, но выходит слишком много аргументов.
не будет там много ,  У вас три варианта, выходной, сокращенный, полный. IF(OR(....условия для выходного...);"В";if(or(... условия для сокращенного...);"15";"16"))
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх