![]() |
Excel. Неправильное суммирование рабочих часов
Вложений: 1
На работе в отделе кадров много лет велся учет рабочего времени в таблице excel но число рабочих дней, доп. часы, выходные и тд они вычитывали в уме или на калькуляторе и писали в ячейку нужную цифру. Как то они узнали что я знаю excel и попросили сделать формулы что бы итоги вычитались автоматически. Все колонки рассчитывали правильно точь в точь, радости не было предела у той женщине. Но когда ввели данные на следующий месяц то нашли 1 баг, колонка с дополнительными часами (отработанные в выходные) неправильно суммирует часы. Если поставить на выходные дни 1,4 и 1,4 то в колонке итог получается 2,8 а надо чтобы вышло 3,20 (3 часа и 20 минут). Посмотрел пару видео уроков на ютубе по этой теме и единственное решение везде показывали что надо писать не 1,4 а 1:40 и чуток по шаманить с итоговой формулой. Данный метод рабочий но нам не подходит так как все ячейки у нас имеют общии формат что бы могли туда писать как и число как и букву (напривер в - выходной день) и если написать туда 1:40 ячейка меняет формат и на следующий месяц если нужно туда поставить букву то будет отображаться каракули вместо буквы. Надо менять обратно формат ячейки на общии а это непосильная задача для человека который годы вычитывал итоги в уме и писал туда цифру. Как сделать чтобы итог доп. рабочие часы 1,4 и 1,4 получалось 3,20?
P.S. исходную таблицу прикрепляю. |
Я — сразу пас:
Скрытый текст
![]() :). Цитата:
Цитата:
|
Цитата:
|
Вложений: 1
Tolea3, Ваша таблица мной не понята (молдавский, румынский?) и где надо суммировать - не знаю. ИМХО, надо определить для Ваших требований самодельную функцию, например:
Код:
Function SumTimDec(rall As Range) |
Вложений: 1
Цитата:
|
Вложений: 1
Tolea3, Там какая-то сложная формула, я не разобрался в ее смысле. Тупо просуммировать моей функцией время в строке - я внедрил в Вашу таблицу. Функцию можно увидеть (у меня Excel 2010) в Лента -> Разработчик -> Visual Basic
Если это Вас не устраивает, я должен понимать алгоритм суммирования, чтобы что-то делать. Там куча Ваших таблиц, формулы размножаются стандартным образом. |
megaloman, премного вам благодарен. Первый раз столкнулся в excel с элементами программирования но немного изменив код добился нужного результата. Ваш вариант суммировал все числа а мне надо было только те которые написаны с запитой так как целые числа суммируются в другом столбце и рассчитывается столько рабочих дней было у человека.
Раз пошла такая пьянка спрошу еще кое что. Человек внеся данные в таблицу иногда может ошибаться и написать дополнительные рабочее часы без запитой (например 6) и эти часы не будут взяты в итоговую колонку с доп. часами. Надо всегда написать вместо 6 например 6,01 и тогда будет все нормально. А можем ль мы сделать так что бы ваша функция брала в расчет те цифры которые написаны красным цветом? и не важно с запитой или без. Код:
Function SumaCifrelorCuVirgula(rall As Range) |
Сам задал вопрос и сам решил. Нашёл как суммировать только красные цифры не зависимо с запитой или без но нашёл новую проблему. Если в ячейку написать цифру и она будет черной и потом изменить ей цвет на красный то формула не срабатывает сразу. Надо либо стереть значение и написать заново или сделать любые изменения в данном ряду.
Код:
Function SumaCifrelorCuVirgula(rall As Range) |
Цитата:
Код:
… Цитата:
|
Iska, работают оба варианта, и ваш и мой но проблема остаётся. Если например пишу цифру 5, изначально она черная, меняю цвет на красный и формула не срабатывает, надо стереть 5 и потом заново написать 5 или любую другую цифру и только после этого формула будет её суммировать.
|
Вложений: 1
Tolea3, Основывать зависимость вычислений от дифференциации цвета
Могу предложить другую идею: основное время писать цифрами (7,50), а дополнительное - цифрами с + (7,50+) на конце. Вот доработанная функция. Код:
Function SumTimDec(rall As Range, Optional Flag As Integer = 1) |
megaloman, спасибо за идею. я спрошу человека как ему будет удобнее из двух вариантов и сделаю финальный вариант.
|
|
Время: 15:03. |
Время: 15:03.
© OSzone.net 2001-