Здравствуйте форумчане и гости форума. Смена начинается в 7:00 и длится 24 часа. Сутки через трое. Если человек работал в последний день месяца то ему считается 17 часов, а оставшиеся 7 часов переходят на следующий месяц. Сделал подсчёт часов в месяце по сменам. Получился вот такой монстр.
Здравствуйте форумчане и гости форума. Смена начинается в 7:00 и длится 24 часа. Сутки через трое. Если человек работал в последний день месяца то ему считается 17 часов, а оставшиеся 7 часов переходят на следующий месяц. Сделал подсчёт часов в месяце по сменам. Получился вот такой монстр.
Я, может, чего не понял, но у меня вот такая простейшая формула получилась:
Код
=СЧЁТЕСЛИ(A3:AD3;"Я")*24-(AD3="Я")*7+(D3="Я")*7
Если надо, чтобы AD3 и D3 как-то через позиции внутри месяца (последний и четвертый день) рассчитывались, то скажите на что можно опереться. На дату начала месяца в A2? Она будет всегда в этой ячейке? Или в шаблоне месяца всегда будет 31 день зарезервирован, а по факту использоваться только дни месяца в нужном количестве (30,31,28,29), так?
И насчёт 4-го дня в месяце не очень понятно. Почему такая "дискриминация" этого дня? Человек сидит 24 часа, а в зачёт только 7 идёт?! P.S. Дошло!! Нужно ДОБАВИТЬ 7 часов за предыдущий месяц, т.е. за смену, приходящуюся на последний день предыдущего месяца. Исправил формулы.
P.P.S. Сделал "позиционные ссылки" - формула, конечно, усложнилась, но не смертельно:
Я, может, чего не понял, но у меня вот такая простейшая формула получилась:
Код
=СЧЁТЕСЛИ(A3:AD3;"Я")*24-(AD3="Я")*7+(D3="Я")*7
Если надо, чтобы AD3 и D3 как-то через позиции внутри месяца (последний и четвертый день) рассчитывались, то скажите на что можно опереться. На дату начала месяца в A2? Она будет всегда в этой ячейке? Или в шаблоне месяца всегда будет 31 день зарезервирован, а по факту использоваться только дни месяца в нужном количестве (30,31,28,29), так?
И насчёт 4-го дня в месяце не очень понятно. Почему такая "дискриминация" этого дня? Человек сидит 24 часа, а в зачёт только 7 идёт?! P.S. Дошло!! Нужно ДОБАВИТЬ 7 часов за предыдущий месяц, т.е. за смену, приходящуюся на последний день предыдущего месяца. Исправил формулы.
P.P.S. Сделал "позиционные ссылки" - формула, конечно, усложнилась, но не смертельно:
Алексей. Ваш вариант тоже работает, но ошибается 1 раз - когда 31 день в месяце. А если есть значения после последнего дня месяца (это когда дней в месяце менее 31) тоже бывает и "приврёт". Это мой косяк. "Вылечил" при помощи:
Алексей. Ваш вариант тоже работает, но ошибается 1 раз - когда 31 день в месяце. А если есть значения после последнего дня месяца (это когда дней в месяце менее 31) тоже бывает и "приврёт". Это мой косяк. "Вылечил" при помощи:
[p.s.]Сделал матрицу для проверки. Красным выделил где данные не совпадают.[/p.s.] [p.s.]Оказалось, что я сделал изначально почти всё не так.[/p.s.]DrMini