Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2019 - [решено] Excel. Неправильное суммирование рабочих часов

Ответить
Настройки темы
2019 - [решено] Excel. Неправильное суммирование рабочих часов

Аватара для Tolea3

Пользователь


Сообщения: 87
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: Tolea3
Дата: 27-04-2020
Вложения
Тип файла: xlsx Tabel pontaj NOU.xlsx
(71.6 Kb, 6 просмотров)
На работе в отделе кадров много лет велся учет рабочего времени в таблице 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
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Я — сразу пас:
Скрытый текст

.


Цитата Tolea3:
везде показывали что надо писать не 1,4 а 1:40 »
Ага. Потому что 1:40 — это один час сорок минут. А 1.4 — это 9 часов 36 минут.

Цитата Tolea3:
Как сделать чтобы итог доп. рабочие часы 1,4 и 1,4 получалось 3,20? »
Перестать заниматься ерундой, начать изучать Microsoft Excel и использовать его должным образом.

Отправлено: 18:25, 27-04-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Tolea3

Пользователь


Сообщения: 87
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Iska:
Перестать заниматься ерундой, начать изучать Microsoft Excel и использовать его должным образом. »
Это понятно тока я делаю не для себя а для простого человека. Открыл поставил буквы цифры и получил итог.

Отправлено: 18:55, 27-04-2020 | #3


Ветеран


Contributor


Сообщения: 2706
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: txt я200427.xlsm.txt
(13.5 Kb, 2 просмотров)

Tolea3, Ваша таблица мной не понята (молдавский, румынский?) и где надо суммировать - не знаю. ИМХО, надо определить для Ваших требований самодельную функцию, например:
Код: Выделить весь код
Function SumTimDec(rall As Range)
    SumTimDec1 = 0
    SumTimDec2 = 0
    For Each r In rall
        If IsNumeric(r) Then
            SumTimDec1 = SumTimDec1 + Int(r)
            SumTimDec2 = SumTimDec2 + (r - Int(r)) * 100
        End If
    Next
    SumTimDec = SumTimDec1 + Int(SumTimDec2 / 60) + Round((SumTimDec2 Mod 60) / 100, 2)
End Function
Недостаток - файл придется хранить как xlsm. Прилагаю файл со своим примером, переименуйте его из txt в xlsm.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 27-04-2020 в 19:53.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:22, 27-04-2020 | #4


Аватара для Tolea3

Пользователь


Сообщения: 87
Благодарности: 1

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: xlsx Tabel pontaj NOU.xlsx
(71.4 Kb, 2 просмотров)

Цитата megaloman:
Прилагаю файл со своим примером, переименуйте его из txt в xlsm. »
Ваш пример отлично работает но не пойму как внедрить его в мой документ. Если можете внедрите пожалуйста вы. Да тут всё на молдавском языке. Колонка ,,АМ" где надо внедрить изменения имеет красный цвет текста.

Отправлено: 21:17, 27-04-2020 | #5


Ветеран


Contributor


Сообщения: 2706
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: txt Tabel pontaj NOU.xlsm.txt
(78.4 Kb, 1 просмотров)

Tolea3, Там какая-то сложная формула, я не разобрался в ее смысле. Тупо просуммировать моей функцией время в строке - я внедрил в Вашу таблицу. Функцию можно увидеть (у меня Excel 2010) в Лента -> Разработчик -> Visual Basic
Если это Вас не устраивает, я должен понимать алгоритм суммирования, чтобы что-то делать. Там куча Ваших таблиц, формулы размножаются стандартным образом.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:00, 27-04-2020 | #6


Аватара для Tolea3

Пользователь


Сообщения: 87
Благодарности: 1

Профиль | Отправить 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


Аватара для Tolea3

Пользователь


Сообщения: 87
Благодарности: 1

Профиль | Отправить 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
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Tolea3:
цифры которые написаны красным цветом? »
Поясните, что Вы имеете в виду? Цвет шрифта? Да, можно:
Код: Выделить весь код
…
    If r.Font.ColorIndex = 3 Then ' Если цвет шрифта диапазона красный…
        …
    End If
…
Номера умолчальных цветов палитры, например, здесь: PatternColorIndex Property [Excel 2003 VBA Language Reference] | Microsoft Docs.

Цитата Tolea3:
но нашёл новую проблему. Если в ячейку написать цифру и она будет черной и потом изменить ей цвет на красный то формула не срабатывает сразу. Надо либо стереть значение и написать заново или сделать любые изменения в данном ряду. »
Это не проблема, это данность: изменение цвета шрифта не является изменением содержимого ячеек и не вызывает пересчёта. Научите нажимать F9 после изменения цвета шрифта.
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:41, 28-04-2020 | #9


Аватара для Tolea3

Пользователь


Сообщения: 87
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, работают оба варианта, и ваш и мой но проблема остаётся. Если например пишу цифру 5, изначально она черная, меняю цвет на красный и формула не срабатывает, надо стереть 5 и потом заново написать 5 или любую другую цифру и только после этого формула будет её суммировать.

Отправлено: 04:01, 28-04-2020 | #10



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2019 - [решено] Excel. Неправильное суммирование рабочих часов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход