Доброго времени суток, уважаемые форумчане. Застрял на графике дежурств, посмотрел различные источники, не один не подходит. Уделите, пожалуйста, внимание вопросу. В графике есть возможность выбирать имя сменщика. Сменщик может отработать как целый рабочий день (8-20) или смену (с 8-14 или 14-20). Нужно сделать автоматический график, который бы подстраивался под выбор того кто работает с ним. Так сменщик может завтра попросить выходной или выйти на целый день. График это должен учитывать и строить дальнейшые смены с учетом что сменщика 1 сменил сменщик2, как бы шахматкой, принцип работы сменщик 1 и за ним сменщик 2 идет, но с возможностью менять сменщика в процессе. Крутил функцию Предсказ, но для нее мало данных а как сделать по человечески чтоб эксель рассчитал не знаю. График строится на месяц, планировка идет каждую неделю. Если сменщик взял всю смену, то формулой, которая берет данные из списка ставлю в график Д, если 1-ю 1, если 2-ю-2, а если еще не заполнено то букву П, что-то вроде Пусто Очень прошу помощи, без макросов.
Доброго времени суток, уважаемые форумчане. Застрял на графике дежурств, посмотрел различные источники, не один не подходит. Уделите, пожалуйста, внимание вопросу. В графике есть возможность выбирать имя сменщика. Сменщик может отработать как целый рабочий день (8-20) или смену (с 8-14 или 14-20). Нужно сделать автоматический график, который бы подстраивался под выбор того кто работает с ним. Так сменщик может завтра попросить выходной или выйти на целый день. График это должен учитывать и строить дальнейшые смены с учетом что сменщика 1 сменил сменщик2, как бы шахматкой, принцип работы сменщик 1 и за ним сменщик 2 идет, но с возможностью менять сменщика в процессе. Крутил функцию Предсказ, но для нее мало данных а как сделать по человечески чтоб эксель рассчитал не знаю. График строится на месяц, планировка идет каждую неделю. Если сменщик взял всю смену, то формулой, которая берет данные из списка ставлю в график Д, если 1-ю 1, если 2-ю-2, а если еще не заполнено то букву П, что-то вроде Пусто Очень прошу помощи, без макросов.2version
Уважаемые форумчане, просьба помочь. Ели хотя б навести на мысль как сделать хотяб с одной-2мя ячейками, я уже дальше адаптирую. Очень нужна помощь. Сделал визуальное объяснение, может быть я написал не структурно в описании.
Уважаемые форумчане, просьба помочь. Ели хотя б навести на мысль как сделать хотяб с одной-2мя ячейками, я уже дальше адаптирую. Очень нужна помощь. Сделал визуальное объяснение, может быть я написал не структурно в описании.2version
2version, Здравствуйте Уважаемый! я так понимаю, что ОСНОВНОЙ работник - это Андрей(1), а сменщики - Петр(2), Василий(3). Если 1 выходит на ДЕНЬ(д), то 2 и 3 не выходят, если 1 выходит в ПЕРВУЮ(1) смену, то кто-то из сменщиков выходит во ВТОРУЮ(2), ну и наоборот! Если 1 не выходит, то сменщики идут в ПЕРВУЮ и во ВТОРУЮ. Нужны более полные данные, в файле написал!
2version, Здравствуйте Уважаемый! я так понимаю, что ОСНОВНОЙ работник - это Андрей(1), а сменщики - Петр(2), Василий(3). Если 1 выходит на ДЕНЬ(д), то 2 и 3 не выходят, если 1 выходит в ПЕРВУЮ(1) смену, то кто-то из сменщиков выходит во ВТОРУЮ(2), ну и наоборот! Если 1 не выходит, то сменщики идут в ПЕРВУЮ и во ВТОРУЮ. Нужны более полные данные, в файле написал!Sir0021681
1я часть таблицы - та формула что я использовал для подстановки (Д,1,2,В), при протягивании она сместилась. Вторая таблица считает сколько часов отработал сменщик. Sir0021681, а нужно чтоб таблица сама проставила смены. Так поставив первому сменщику 1 дальше до конца месяца должно поставиться 2,1,2,1 и так далее, только с "П:" , так как данные не заданы и таблица проставила их автоматом. То же и по второму сменщику. Если же выходит сменщик на весь день то второй не выходит. Та таблица что рядом позволяет выбирать сменщиков, чтоб не ставить буквы, так удобнее. Пример: Заполняем в таблице данных Весь день 1-я смена 2-я смена 1 Андрей 2 Петр Василий 3 Петр 4Андрей
Результат ( на 10 дней) ________1_ 2_ 3_ 4_ 5_ 6_ 7_ 8_ 9_ 10 Андрей Д Петр___ __1 Д П:2 П:1 П:2 П:1 П:2 П:1 П:2 П:1 П:2 Василий __2 А П:1 П:2 П:1 П:2 П:1 П:2 П:1 П:2 П:1
Меняем день в процессе: Весь день 1-я смена 2-я смена 1 Андрей 2 Петр Василий 3 Петр 4Андрей 5Василий Результат ( на 10 дней) ________1_ 2_ 3_ 4_ 5_ 6_ 7_ 8_ 9_ 10 Андрей Д Петр 1 Д П:2 Д П:1 П:2 П:1 П:2 П:1 П:2 П:1 Василий 2 А П:1 П:2 П:1 П:2 П:1 П:2 П:1 П:2 И так далее. Меняя значения чтоб менялся и сам график.
В эксель вставил заметку. Там где П: проставляется автоматически.
1я часть таблицы - та формула что я использовал для подстановки (Д,1,2,В), при протягивании она сместилась. Вторая таблица считает сколько часов отработал сменщик. Sir0021681, а нужно чтоб таблица сама проставила смены. Так поставив первому сменщику 1 дальше до конца месяца должно поставиться 2,1,2,1 и так далее, только с "П:" , так как данные не заданы и таблица проставила их автоматом. То же и по второму сменщику. Если же выходит сменщик на весь день то второй не выходит. Та таблица что рядом позволяет выбирать сменщиков, чтоб не ставить буквы, так удобнее. Пример: Заполняем в таблице данных Весь день 1-я смена 2-я смена 1 Андрей 2 Петр Василий 3 Петр 4Андрей
Результат ( на 10 дней) ________1_ 2_ 3_ 4_ 5_ 6_ 7_ 8_ 9_ 10 Андрей Д Петр___ __1 Д П:2 П:1 П:2 П:1 П:2 П:1 П:2 П:1 П:2 Василий __2 А П:1 П:2 П:1 П:2 П:1 П:2 П:1 П:2 П:1
Меняем день в процессе: Весь день 1-я смена 2-я смена 1 Андрей 2 Петр Василий 3 Петр 4Андрей 5Василий Результат ( на 10 дней) ________1_ 2_ 3_ 4_ 5_ 6_ 7_ 8_ 9_ 10 Андрей Д Петр 1 Д П:2 Д П:1 П:2 П:1 П:2 П:1 П:2 П:1 Василий 2 А П:1 П:2 П:1 П:2 П:1 П:2 П:1 П:2 И так далее. Меняя значения чтоб менялся и сам график.
В эксель вставил заметку. Там где П: проставляется автоматически.2version
Может у кого есть готовое похожее решение с автоматическим заполнением, поделитесь, пожалуйста, я адаптирую. Очень нужно. Функция авто проставления выполняет рекомендательный характер для формирования графика, очень нужно такое сделать!
Может у кого есть готовое похожее решение с автоматическим заполнением, поделитесь, пожалуйста, я адаптирую. Очень нужно. Функция авто проставления выполняет рекомендательный характер для формирования графика, очень нужно такое сделать!2version
Сообщение отредактировал 2version - Суббота, 31.08.2024, 12:07
Здравствуйте. Посмотрите вариант. Не всё понял как надо, но что то сделал. После "Д", П:1 и П:2, не получилось пока победить. Но возможно, что всё вовсе не так.
Здравствуйте. Посмотрите вариант. Не всё понял как надо, но что то сделал. После "Д", П:1 и П:2, не получилось пока победить. Но возможно, что всё вовсе не так.gling
gling, да, это именно то что мне нужно, благодарю. Нужно побороть чтоб работало, я поразбираюсь в Вашей формуле и попробую додумать. В любом случае уже есть с чем работать и идея как оно может быть! Благодарю.
gling, да, это именно то что мне нужно, благодарю. Нужно побороть чтоб работало, я поразбираюсь в Вашей формуле и попробую додумать. В любом случае уже есть с чем работать и идея как оно может быть! Благодарю.2version
Сообщение отредактировал 2version - Суббота, 31.08.2024, 13:43
Формула состоит из двух разделов. Первая часть: ПРОСМОТР(ПОИСКПОЗ($B17;ИНДЕКС($AK$3:$AS$33;ПОИСКПОЗ(C$12;$AJ$3:$AJ$33;);););{0;3;6};{"Д";1;2}) (1) Вторая часть ЕСЛИ(МАКС(D5:$AG5)=0;ЕСЛИОШИБКА("П:"&2/ПОДСТАВИТЬ(ИНДЕКС($B17:B17;МАКС(ПОИСКПОЗ("яя";$B17:B17;1);ПОИСКПОЗ(9;$B17:B17;1)));"П:";"");"");"")) (2) =ЕСЛИОШИБКА( - обрабатывает ошибку, и если в первой части (1) при вычислении возникает ошибка, то подключается вычисление второй части формулы (2) По первой части: ИНДЕКС($AK$3:$AS$33;ПОИСКПОЗ(C$12;$AJ$3:$AJ$33;)- ищет строку в диапазоне $AK$3:$AS$33 ПОИСКПОЗ($B17; ищет номер столбца в найденной строке. ПРОСМОТР( просматривает массив {0;3;6}, находит номер найденный ПОИСКПОЗ($B17 и выводит из массива {"Д";1;2} значение соответствующее найденному порядку от 0 до 3 - Д; от 4 до 6 - 1; от 7 и больше – 2. Если первая часть = ошибке, то ведется расчет по второй части. Вторая часть нужна для заполнения пустых ячеек П:1 и П:2. Проверка ведется по верхней таблице, в которой прописана первая часть формулы с выдачей пустой ячейки ;"") в случае ошибки. МАКС(D5:$AG5)=0 – выявляет, есть ли числовые значения правее ячейки с формулой. Это нужно чтобы узнать есть ли полусмены у работника от текущей даты и до конца месяца. При МАКС<>0 – результат равен пусто ;""): При МАКС=0 – выполняется расчет формулы: ЕСЛИОШИБКА("П:"&2/ПОДСТАВИТЬ(ИНДЕКС($B17:B17;МАКС(ПОИСКПОЗ("яя";$B17:B17;1);ПОИСКПОЗ(9;$B17:B17;1)));"П:";"");""); ИНДЕКС($B17:B17;МАКС(ПОИСКПОЗ("яя";$B17:B17;1);ПОИСКПОЗ(9;$B17:B17;1)) – ищется ячейка со значением начиная от левого края таблицы и до текущей ячейки и получаем значение этой ячейки. ПОДСТАВИТЬ(здесьНайденноеЗначение;"П:";"") – если в найденном значении есть текст ;"П:", то он заменяется на пусто ""), а если нет, то значение остается без изменений в любом случае мы получаем номер смены перед текущей датой. ("П:"&2/номер смены предыдущего дня - создает П:1 или П:2. (2/1=2; 2/2=1)
Да, еще в файле добавлен спустой столбец в таблицах, чтобы формулы не выдавали циклические ссылки.
Формула состоит из двух разделов. Первая часть: ПРОСМОТР(ПОИСКПОЗ($B17;ИНДЕКС($AK$3:$AS$33;ПОИСКПОЗ(C$12;$AJ$3:$AJ$33;);););{0;3;6};{"Д";1;2}) (1) Вторая часть ЕСЛИ(МАКС(D5:$AG5)=0;ЕСЛИОШИБКА("П:"&2/ПОДСТАВИТЬ(ИНДЕКС($B17:B17;МАКС(ПОИСКПОЗ("яя";$B17:B17;1);ПОИСКПОЗ(9;$B17:B17;1)));"П:";"");"");"")) (2) =ЕСЛИОШИБКА( - обрабатывает ошибку, и если в первой части (1) при вычислении возникает ошибка, то подключается вычисление второй части формулы (2) По первой части: ИНДЕКС($AK$3:$AS$33;ПОИСКПОЗ(C$12;$AJ$3:$AJ$33;)- ищет строку в диапазоне $AK$3:$AS$33 ПОИСКПОЗ($B17; ищет номер столбца в найденной строке. ПРОСМОТР( просматривает массив {0;3;6}, находит номер найденный ПОИСКПОЗ($B17 и выводит из массива {"Д";1;2} значение соответствующее найденному порядку от 0 до 3 - Д; от 4 до 6 - 1; от 7 и больше – 2. Если первая часть = ошибке, то ведется расчет по второй части. Вторая часть нужна для заполнения пустых ячеек П:1 и П:2. Проверка ведется по верхней таблице, в которой прописана первая часть формулы с выдачей пустой ячейки ;"") в случае ошибки. МАКС(D5:$AG5)=0 – выявляет, есть ли числовые значения правее ячейки с формулой. Это нужно чтобы узнать есть ли полусмены у работника от текущей даты и до конца месяца. При МАКС<>0 – результат равен пусто ;""): При МАКС=0 – выполняется расчет формулы: ЕСЛИОШИБКА("П:"&2/ПОДСТАВИТЬ(ИНДЕКС($B17:B17;МАКС(ПОИСКПОЗ("яя";$B17:B17;1);ПОИСКПОЗ(9;$B17:B17;1)));"П:";"");""); ИНДЕКС($B17:B17;МАКС(ПОИСКПОЗ("яя";$B17:B17;1);ПОИСКПОЗ(9;$B17:B17;1)) – ищется ячейка со значением начиная от левого края таблицы и до текущей ячейки и получаем значение этой ячейки. ПОДСТАВИТЬ(здесьНайденноеЗначение;"П:";"") – если в найденном значении есть текст ;"П:", то он заменяется на пусто ""), а если нет, то значение остается без изменений в любом случае мы получаем номер смены перед текущей датой. ("П:"&2/номер смены предыдущего дня - создает П:1 или П:2. (2/1=2; 2/2=1)
Да, еще в файле добавлен спустой столбец в таблицах, чтобы формулы не выдавали циклические ссылки.gling
ЯД-41001506838083
Сообщение отредактировал gling - Понедельник, 02.09.2024, 23:03
gling, благодарю, я как раз таки не понял про пустой столбец. Теперь смогу, с Вашим объяснением, изучить формулу. + Вам в репутацию однозначно ))))
gling, благодарю, я как раз таки не понял про пустой столбец. Теперь смогу, с Вашим объяснением, изучить формулу. + Вам в репутацию однозначно ))))2version
Сообщение отредактировал 2version - Вторник, 03.09.2024, 13:31