Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Формула для сменного графика в табеле - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Формула для сменного графика в табеле
olya2084 Дата: Воскресенье, 25.12.2022, 00:55 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: -2 ±
Замечаний: 20% ±

Здравствуйте! Помогите, пожалуйста, с формулой автозаполнения сменного графика два через два для каждой из четырех смен в табеле на листе "Параметры". Нужно, чтобы при смене месяца (ячейка В12) и года (ячейка В13) табель автоматически заполнялся дневными и ночными сменами ("Д" и "Н").
К сообщению приложен файл: 1016467.xlsx (72.4 Kb)
 
Ответить
СообщениеЗдравствуйте! Помогите, пожалуйста, с формулой автозаполнения сменного графика два через два для каждой из четырех смен в табеле на листе "Параметры". Нужно, чтобы при смене месяца (ячейка В12) и года (ячейка В13) табель автоматически заполнялся дневными и ночными сменами ("Д" и "Н").

Автор - olya2084
Дата добавления - 25.12.2022 в 00:55
Gustav Дата: Воскресенье, 25.12.2022, 02:24 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Если правильно понял, то нужно организовать 8-мидневные шаблоны для каждой из 4-х смен, которые начинаются с некоторой единой даты начала отсчета (пусть с 01 декабря 2022 года) и далее повторяются каждые 8 дней, никак не завися ни от границ месяцев, ни от выходных дней, и уходя с этим регулярным расписанием в далекое светлое будущее. В далеком будущем дата начала отсчета остается неизменной и равняется ДАТА(2022;12;1) - хоть через год, хоть через 10 лет.

Если всё так, то формула для ячейки E4 предлагается такая:
Код
=ВЫБОР(ОСТАТ(E$2-ДАТА(2022;12;1)-ВЫБОР($D4; 0;6;2;4);8)+1; "Н";"Н";"-";"-";"Д";"Д";"-";"-")


[p.s.]Еще предлагается такая оптимизация - чтобы в конце месяца ненужные даты автоматически скрывались (а то сейчас как-то громоздко там всё):[/p.s.]
Для ячейки F2 формула, которую протягиваем по строке 2 вправо до конца месяца:
Код
=ЕСЛИ(E2="";"";ЕСЛИ(E2+1>КОНМЕСЯЦА(E2;0);"";E2+1))

И тогда в протягиваемую формулу для ячейки E4 на эту же тему добавится небольшой начальный фрагмент:
Код
=ЕСЛИ(E$2="";"";ВЫБОР(ОСТАТ(E$2-ДАТА(2022;12;1)-ВЫБОР($D4; 0;6;2;4);8)+1; "Н";"Н";"-";"-";"Д";"Д";"-";"-"))

где в E$2 - дата месяца из второй строки, а в $D4 - номер смены (1,2,3,4)

[p.s.]Дальше еще можно пооптимизировать формулу для ячейки E4, заменив в ней выражение ДАТА(2022;12;1),[/p.s.] чтобы не вычислять функцию многократно, на эквивалентное этой дате целое числовое значение 44896:
Код
=ЕСЛИ(E$2="";"";ВЫБОР(ОСТАТ(E$2-44896-ВЫБОР($D6; 0;6;2;4);8)+1; "Н";"Н";"-";"-";"Д";"Д";"-";"-"))

И тут же замечая, что число 44896 делится нацело на 8 (с ответом = 5612), можно вообще исключить его из формулы, чудным образом сохраняя при этом заданную 8-мидневную периодичность:
Код
=ЕСЛИ(E$2="";"";ВЫБОР(ОСТАТ(E$2-ВЫБОР($D4; 0;6;2;4);8)+1; "Н";"Н";"-";"-";"Д";"Д";"-";"-"))

При этом, однако, придётся как-то запомнить, с какой даты начинался отсчёт смен. И если в будущем по каким-то организационным или иным причинам периодичность смен нужно будет поменять, отталкиваясь от новой даты отсчета, то ее (как первый день нового расписания) нужно будет снова прописать в формулу с использованием функции ДАТА (или соответствующим целым числом).


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Воскресенье, 25.12.2022, 03:57
 
Ответить
СообщениеЕсли правильно понял, то нужно организовать 8-мидневные шаблоны для каждой из 4-х смен, которые начинаются с некоторой единой даты начала отсчета (пусть с 01 декабря 2022 года) и далее повторяются каждые 8 дней, никак не завися ни от границ месяцев, ни от выходных дней, и уходя с этим регулярным расписанием в далекое светлое будущее. В далеком будущем дата начала отсчета остается неизменной и равняется ДАТА(2022;12;1) - хоть через год, хоть через 10 лет.

Если всё так, то формула для ячейки E4 предлагается такая:
Код
=ВЫБОР(ОСТАТ(E$2-ДАТА(2022;12;1)-ВЫБОР($D4; 0;6;2;4);8)+1; "Н";"Н";"-";"-";"Д";"Д";"-";"-")


[p.s.]Еще предлагается такая оптимизация - чтобы в конце месяца ненужные даты автоматически скрывались (а то сейчас как-то громоздко там всё):[/p.s.]
Для ячейки F2 формула, которую протягиваем по строке 2 вправо до конца месяца:
Код
=ЕСЛИ(E2="";"";ЕСЛИ(E2+1>КОНМЕСЯЦА(E2;0);"";E2+1))

И тогда в протягиваемую формулу для ячейки E4 на эту же тему добавится небольшой начальный фрагмент:
Код
=ЕСЛИ(E$2="";"";ВЫБОР(ОСТАТ(E$2-ДАТА(2022;12;1)-ВЫБОР($D4; 0;6;2;4);8)+1; "Н";"Н";"-";"-";"Д";"Д";"-";"-"))

где в E$2 - дата месяца из второй строки, а в $D4 - номер смены (1,2,3,4)

[p.s.]Дальше еще можно пооптимизировать формулу для ячейки E4, заменив в ней выражение ДАТА(2022;12;1),[/p.s.] чтобы не вычислять функцию многократно, на эквивалентное этой дате целое числовое значение 44896:
Код
=ЕСЛИ(E$2="";"";ВЫБОР(ОСТАТ(E$2-44896-ВЫБОР($D6; 0;6;2;4);8)+1; "Н";"Н";"-";"-";"Д";"Д";"-";"-"))

И тут же замечая, что число 44896 делится нацело на 8 (с ответом = 5612), можно вообще исключить его из формулы, чудным образом сохраняя при этом заданную 8-мидневную периодичность:
Код
=ЕСЛИ(E$2="";"";ВЫБОР(ОСТАТ(E$2-ВЫБОР($D4; 0;6;2;4);8)+1; "Н";"Н";"-";"-";"Д";"Д";"-";"-"))

При этом, однако, придётся как-то запомнить, с какой даты начинался отсчёт смен. И если в будущем по каким-то организационным или иным причинам периодичность смен нужно будет поменять, отталкиваясь от новой даты отсчета, то ее (как первый день нового расписания) нужно будет снова прописать в формулу с использованием функции ДАТА (или соответствующим целым числом).

Автор - Gustav
Дата добавления - 25.12.2022 в 02:24
olya2084 Дата: Понедельник, 26.12.2022, 00:14 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: -2 ±
Замечаний: 20% ±

Gustav, большое спасибо! Все получилось!
 
Ответить
СообщениеGustav, большое спасибо! Все получилось!

Автор - olya2084
Дата добавления - 26.12.2022 в 00:14
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!