Добрый день! Есть таблица, где указаны трудозатраты сотруднику по периодам и по виду работы. Такие данные надо разбить по неделям, и указать сколько у каждого сотрудника планово трудозатрат.
Количество столбцов результата ограничены минимальной датой начала и максимальной датой окончания периода. Трудозатраты надо раскидывать равномерно по кол-ву недель с округлением до сотой, если разделить не получается(например 10 на 3), то большую часть относить на последнюю неделю (1 неделя - 3,33, 2 неделя - 3,33, 3 неделя - 3,34).
Пример файла прикладываю. Лист данные - так данные приходят на вход. Лист результат - так данные должны выглядеть.
Возможно есть примеры какие-то с макросами, как такое преобразование можно сделать? Т.к. сейчас даже тяжело понять, с чего лучше начать
Добрый день! Я похожее делал в UDF - сперва высчитывал затраты на день, затем суммировал в какую неделю сколько попадает. В целом всё просто, больше возни как перевести эти ваши Неделя 35 Неделя 36 в реальные периоды времени. И если ваша версия поддерживает динамические диапазоны - такие UDF применять как по мне очень вкусно/
Geocub9000, если знаете что такое UDF и готовы применять (от безвыходности например )) ) то вот готово:
P.S. Сейчас проверил - может косячить на начало/конец года, вернее дело в интерпретации. Например первая неделя 2025-го года тут считается с 06.01.2025, а 53-я 2024 с 30.12.2024, и поэтому работа в самом начале 2025-го года запишется в 53-ю неделю 2024. Рекомендую на стыке годов добавить столбец с последней неделей предыдущего года (53-й для UDF) и считать что попадает туда, или/и скорректировать в коде или аргументе чтоб в середине года недели считались так как заведено у Вас в компании.
Добавил ещё один вариант UDF, мне он нравится больше. Проблема на стыке годов - к какой неделе какого года относить данные за эти дни. В первой версии это делает функция в коде. Во второй версии используется НОМНЕДЕЛИ(дата;2) Но работу обе раскидывают не равномерно, а согласно указанных дней - если на неделю выпадает 1 день, то столько работы и будет.