Страницы: 1
RSS
Автоматическая расстановка задач по времени и рабочим дням в MS Excel
 
Уважаемые форумчане - планетоЭкселяне,
итак поподробнее.
Есть некий список задач, который можно сделать последовательным. К каждой задаче задана длительность в день и количество дней. Например - задача Согласование - 4 дня по 2 часа ежедневно.
Можно задаться вопросом и упорядочить по приоритетности (порядку выполнения). (хотя тоже есть вопросы - группа согласования приоритетнее, но надо выполнить вначале все Согласование 1 (все дни), потом Согласование 2 (в свои дни) и т.д.)
Трудность - есть вариантность длительности рабочего дня и количества рабочих дней в неделю.
Общую длительность всех работ подсчитать несложно.
А вот как расставить работы по числам - вот это вопрос.

Пока не буду сужать задачу. В любом варианте.
Если кратко - как учитывать, в конкретной дате сколько нераспределенного времени осталось
В идеале - чтобы при смене длительности рабочего дня и количества рабочих дней в неделю график пересчитывался
 
Гант вам в помощь, как вариант - http://www.planetaexcel.ru/techniques/4/ ... ;)
Изменено: Z - 05.06.2013 17:02:25
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Видел примеры. Не совсем то, что надо.
Главная сложность в том, что все они учитывают только даты. И линейно расставляют по датам.
У меня же еще задача - еще и по времени.
Т.е. задача 1 - 4 дня по 2 часа. 1 день - 2 часа. Если задан 10 часовой день, то 8 часов остается и т.д.
Как можно доработать существующее?
 
Для решения вопроса относительно истории количества часов, то можно поступить так:
1. Создаем на отдельном листе список истории количества рабочих часов. Столбцы:
А) Ключ: =B1&C1
B) Имя сотрудника
C) Дата начала действия нового количества часов
D) Количество рабочих часов
2. Сортируем по Сотрудник и Дата начала действия нового количества часов (от старых к новым).
3. Количество рабочих часов получаем по формуле (так сказать, срез последнего норматива):
Код
=ПРОСМОТР(СЦЕПИТЬ(Сотрудник;День);СписокРабочихЧасов!$A:$A;СписокРабочихЧасов!$D:$D)

4. Далее по каждому сотруднику можно будет получить разницу между количеством часов, которое он будет работать, и количеством часов по выставленным задачам. Если разница отрицательная, то можно условным форматирование красить задачи такого сотрудника, перераспределять задачи лучше в ручную, думаю, понятно почему.
Изменено: DEAD MAN - 05.06.2013 18:14:55
Пользователи, как школьники, учиться хотят далеко не все, а отличниками становятся единицы.
Проблема - это ситуация, в решении которой человек не заинтересован.
 
Откуда взять Даты начала нового действия, если их еще нет, пока они не расставлены?
или имелось ввиду, что определить некоторую приоритетность действий (или последовательность) действий?

P.S. спасибо за идею параметра "сотрудник" - я пока пробую план для одного сотрудника
но рано или поздно придется делать сводные планы по подразделениям и в целом по отделу

P.P.S. если задачи будут расставлены, можно вообще не красить. Задача именно в том, чтобы их расставить. Понятно, что если полностью доверить расстановку автоматики, то все потом мучаться будут, а вот механизм "пододвинуть" часть задачи вперед-назад по времени и датам со сдвигом всего остального - это было бы удачно.
Хотя это и сложно. Наверное, есть способ проще
Изменено: Voshod - 05.06.2013 21:17:13
 
Цитата
Voshod пишет:
Откуда взять Даты начала нового действия, если их еще нет, пока они не расставлены?
Я имел ввиду, что сотрудник устроился 01.02.13 и ему установили норму 8 рабочих чалов, далее, 15.04.2013 ему изменили норму и она стала равна 6 часам и эти данные фиксируются с приведёнными выше условиями. При использовании формулы, которую я приводил, мы получаем норматив, действующий на данный момент, то есть, если норматив начал действовать с 01.05.13, а новый с 01.06.13, то при в несении задач, в зависимости от сотрудника и внесенной даты, будет подхватываться соответствующий норматив. Пример во вложении, попробуйте перенести задачи Петрова с 30.04.13 на 01.05.13
Пользователи, как школьники, учиться хотят далеко не все, а отличниками становятся единицы.
Проблема - это ситуация, в решении которой человек не заинтересован.
 
Простите, не так. Попробую объяснить внятно задачу - видимо, я скомкал все.
Т.е. есть набор действий, из которых должен получиться план. Какие то действия делаются в определенной последовательности - и это можно сформулировать.
Например, вначале подбираются покупные изделия, потом ищем, кто их может делать. Потом проводим переговоры о поставке.
Сложность в чем. Скажем, на переговоры о поставке надо выделить на каждое покупное изделие по 15 минут каждый день в течении, например, трех рабочих дней. Бессмысленно закладывать сразу в один день 45 минут - потому что надо послать запрос в один день, получить ответ и т.д.
В то же самое время 15 минут - это не весь рабочий день. В этот день еще что-то можно успеть сделать. И это будут задачи другой категории
задача состоит именно в том, чтобы расставить все задачи (составить план)
и повторюсь - трудность в том, что необходимы вариации длительности рабочего дня и кол-ва раб дней в неделю
 
Вроде бы что-то стало проявляться.
В примере http://www.planetaexcel.ru/techniques/4/74/, на который указал г-н Z, надо добавить еще один параметр.
1. Слева, в область исходных данных вносится колонка "Длительность, часов"
2. строка 9 по примеру (прямо под датами) освобождается для времени. Она будет показывать, сколько часов в этот день осталось нераспределенным.
Значение этой клетки будет равно длительности рабочего дня (заданного во внешних исходных данных) минус сумму всех работ по столбцу в диапазоне. Пока не введена ни одна работа (или ее длительность), значение клетки останется равной максимально доступному рабочему времени
3. Как только мы вводим дату начала выполнения задачи, что-то (может макрос, функция или правильно введенная формула) проверяет, длительность задачи не превышает лимита времени, указанного в 9й строке.
Если не превышает, тогда в эту клетку ставится длительность задачи
Если превышает, тогда задержка увеличивается на 1, а это что-то смотрит следующий рабочий день
И так для каждого рабочего дня, заложенного для данной задачи

Осталось только разобраться с заложенными функциями в примере - например, возможность опционально вводить 4, 5 или 6ти дневную неделю

если кто знаком с примером Календарного графика проекта (диаграмма Гранта), буду рад помощи изменения шаблона
 
Я и не говорил, что это решение всей задачи в целом, а только "Для решения вопроса относительно истории количества часов"  ;)
Цитата
Voshod пишет:
2. строка 9 по примеру (прямо под датами) освобождается для времени. Она будет показывать, сколько часов в этот день осталось нераспределенным.
Значение этой клетки будет равно длительности рабочего дня (заданного во внешних исходных данных) минус сумму всех работ по столбцу в диапазоне.
Хм, а чем не устраивает способ получения нормы часов (по вашему - длительности рабочего дня) из моего примера? А "Остаток нормы часов" и есть - "Значение этой клетки будет равно длительности рабочего дня (заданного во внешних исходных данных) минус сумму всех работ по столбцу в диапазоне", в вашем описании. Остаётся объединить формулы в одну ячейку и поставить в нужное место.
Пользователи, как школьники, учиться хотят далеко не все, а отличниками становятся единицы.
Проблема - это ситуация, в решении которой человек не заинтересован.
 
Цитата
DEAD MAN пишет:
Хм, а чем не устраивает способ получения нормы часов (по вашему - длительности рабочего дня) из моего примера?

У вас получается учет отработанного времени исполнителем. Чтобы не усложнять, возьму одного человека. И список задач для него.
Т.е. в Вашем примере получается учет, над какой задачей трудился человек и сколько времени.

Мне же надо из набора задач построить последовательность (план работ). Если задача не влезает в текущий день, то ее надо переносить. В результате расстановки всех задач с учетом установленной длины рабочего дня и длит. рабочей недели получится конечная дата всего проекта

Если Вашу идею можно применить в таком качестве, я не буду мучаться над привинчиванием часов к графику Ганта
 
Цитата
Voshod пишет:
Т.е. в Вашем примере получается учет, над какой задачей трудился человек и сколько времени.
То есть, при планировании мы не должны учитывать над какой задачей и сколько должен будет трудится человек? При планировании, идёт резервирование времени на выполнение определенной задачи, тем самым уменьшается общее количество времени, которое человек может потратить на выполнение других задач. Например, у сотрудника рабочий день 8 часов, ему поставили задачу провести встречу, длительность встречи 1 час, в итоге, на остальные задачи в этот день у него остается 7 часов. Или я ошибаюсь?
Цитата
Voshod пишет:
Если задача не влезает в текущий день
Для того, чтобы узнать "влезет/не влезет" задача в текущий день, нам нужно знать норму часов на день? Я думаю, что нужно. Для того, чтобы получить норму часов, её нужно где-то хранить, а для того, чтобы использовать, её нужно получить из хранилища. Как раз это и делаем приведённая ранее формула:
Код
=ПРОСМОТР(СЦЕПИТЬ(Сотрудник;День);СписокРабочихЧасов!$A:$A;СписокРабочихЧасов!$D:$D)

Пример организации данных смогу скину только вечером.
Пользователи, как школьники, учиться хотят далеко не все, а отличниками становятся единицы.
Проблема - это ситуация, в решении которой человек не заинтересован.
 
Цитата
DEAD MAN пишет:
Например, у сотрудника рабочий день 8 часов, ему поставили задачу провести встречу, длительность встречи 1 час, в итоге, на остальные задачи в этот день у него остается 7 часов. Или я ошибаюсь?
Нет, не ошибаетесь. Именно так и есть.
Теперь надо грамотно передать эти 7 часов для распределения других задач
Цитата
DEAD MAN пишет:
Для того, чтобы получить норму часов

Норму часов на день для каждой задачи не надо получать - она задана изначально, так же как и сколько дней надо выделять указанную норму времени для текущей задачи. Это исходные данные, их надо использовать

чтобы приблизиться к задаче, из Вашей формулы исключаем Сотрудника -
должны получить 3 колонки взвешенных данных - дата - задача - часы
сумма часов по всем задачам на текущий день не должна превышать установленную длительность рабочего дня

Но Вы правы в одном - я не до конца  понимаю Вашу идею. хотелось бы это изменить  ;)
 
Здравствуйте. Имеется сложный график работы локомотивных бригад в пассажирском движении со множеством условий, такие как дни следования поездов, рабочее время, междусменный отдых, выходные и т.д. Как сделать, чтобы все имеющиеся поезда расставлялись автоматически, с учетом всех требований. Может кто откликнется, я заплачу.
 
Цитата
Yragrnv написал:
я заплачу.
В таком случае лучше создать свою тему в платном разделе.
Страницы: 1
Читают тему
Наверх