|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2019 - [решено] Excel. Неправильное суммирование рабочих часов |
|
|
2019 - [решено] Excel. Неправильное суммирование рабочих часов
|
Пользователь Сообщения: 87 |
На работе в отделе кадров много лет велся учет рабочего времени в таблице 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. исходную таблицу прикрепляю. |
|
Отправлено: 17:00, 27-04-2020 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Я — сразу пас:
Скрытый текст
![]() ![]() Цитата Tolea3:
Цитата Tolea3:
|
||
Отправлено: 18:25, 27-04-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 18:55, 27-04-2020 | #3 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать
Tolea3, Ваша таблица мной не понята (молдавский, румынский?) и где надо суммировать - не знаю. ИМХО, надо определить для Ваших требований самодельную функцию, например:
Недостаток - файл придется хранить как xlsm. Прилагаю файл со своим примером, переименуйте его из txt в xlsm.
|
||||
------- Последний раз редактировалось megaloman, 27-04-2020 в 19:53. Отправлено: 19:22, 27-04-2020 | #4 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать
Цитата megaloman:
|
||||||
Отправлено: 21:17, 27-04-2020 | #5 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать
Tolea3, Там какая-то сложная формула, я не разобрался в ее смысле. Тупо просуммировать моей функцией время в строке - я внедрил в Вашу таблицу. Функцию можно увидеть (у меня Excel 2010) в Лента -> Разработчик -> Visual Basic
Если это Вас не устраивает, я должен понимать алгоритм суммирования, чтобы что-то делать. Там куча Ваших таблиц, формулы размножаются стандартным образом. |
||||
------- Отправлено: 22:00, 27-04-2020 | #6 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать megaloman, премного вам благодарен. Первый раз столкнулся в excel с элементами программирования но немного изменив код добился нужного результата. Ваш вариант суммировал все числа а мне надо было только те которые написаны с запитой так как целые числа суммируются в другом столбце и рассчитывается столько рабочих дней было у человека.
Раз пошла такая пьянка спрошу еще кое что. Человек внеся данные в таблицу иногда может ошибаться и написать дополнительные рабочее часы без запитой (например 6) и эти часы не будут взяты в итоговую колонку с доп. часами. Надо всегда написать вместо 6 например 6,01 и тогда будет все нормально. А можем ль мы сделать так что бы ваша функция брала в расчет те цифры которые написаны красным цветом? и не важно с запитой или без. Function SumaCifrelorCuVirgula(rall As Range) SumTimDec1 = 0 SumTimDec2 = 0 For Each r In rall If IsNumeric(r) Then If Int(r) <> r Then SumTimDec1 = SumTimDec1 + Int(r) SumTimDec2 = SumTimDec2 + (r - Int(r)) * 100 End If End If Next SumaCifrelorCuVirgula = SumTimDec1 + Int(SumTimDec2 / 60) + Round((SumTimDec2 Mod 60) / 100, 2) End Function |
Последний раз редактировалось Tolea3, 28-04-2020 в 02:52. Отправлено: 02:32, 28-04-2020 | #7 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Сам задал вопрос и сам решил. Нашёл как суммировать только красные цифры не зависимо с запитой или без но нашёл новую проблему. Если в ячейку написать цифру и она будет черной и потом изменить ей цвет на красный то формула не срабатывает сразу. Надо либо стереть значение и написать заново или сделать любые изменения в данном ряду.
Function SumaCifrelorCuVirgula(rall As Range) SumTimDec1 = 0 SumTimDec2 = 0 For Each r In rall If r.Font.Color = vbRed Then If IsNumeric(r) Then SumTimDec1 = SumTimDec1 + Int(r) SumTimDec2 = SumTimDec2 + (r - Int(r)) * 100 End If End If Next SumaCifrelorCuVirgula = SumTimDec1 + Int(SumTimDec2 / 60) + Round((SumTimDec2 Mod 60) / 100, 2) End Function |
Отправлено: 03:29, 28-04-2020 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Tolea3:
Номера умолчальных цветов палитры, например, здесь: PatternColorIndex Property [Excel 2003 VBA Language Reference] | Microsoft Docs. Цитата Tolea3:
|
||
Отправлено: 03:41, 28-04-2020 | #9 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Iska, работают оба варианта, и ваш и мой но проблема остаётся. Если например пишу цифру 5, изначально она черная, меняю цвет на красный и формула не срабатывает, надо стереть 5 и потом заново написать 5 или любую другую цифру и только после этого формула будет её суммировать.
|
Отправлено: 04:01, 28-04-2020 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2010 - [решено] Excel 2010. Суммирование по столбцу: разные суммы, лист на млн. строк и т.д. | flev45 | Microsoft Office (Word, Excel, Outlook и т.д.) | 2 | 29-05-2019 13:12 | |
Снижение стоимости часов Pebble и возможное появление часов LG на webOS | OSZone News | Новости информационных технологий | 0 | 02-10-2014 19:30 | |
Неправильное разрешение | Said88 | Хочу все знать | 6 | 06-03-2013 15:17 | |
2003/XP/2000 - [решено] Excel: Суммирование диапазона Сумесли() | White-Lion | Microsoft Office (Word, Excel, Outlook и т.д.) | 4 | 06-09-2012 11:51 | |
Excel. Многоуровневое суммирование | Senat | Программирование и базы данных | 2 | 30-11-2004 09:55 |
|