Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Office Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Мне надо была делать учет рабочего времени сотрудников. Мне помогли это делать и потом я кое-что меняла в этом макросе. Вроде все работает. Но, иногда получается такие файлы (исходные данные берется из TXT файла), для них программа не правильно работает.
Например, при расчета 23 12-08-2014 8-16-39.txt все нормально. А в следующий файл (24 12-08-2014 8-16-58.txt) совсем по другому получается: столбцы меняется местами и т.д. Но, между этих двух файлами по структуре ни какая разница не нашла. Помогите пожалуйста в чем моя проблема.

К сообщению приложен файл (22.rar - 79Kb) cкачать
15 авг 14, 14:26    [16446632]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Во обе файлах структура одинаковая.
Порядок столбцов и их расположение не меняется.
Но, почему-то результат по разному получается.
18 авг 14, 08:18    [16453854]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
Вряд ли кто-то захочет разбираться ради интереса, что вы подразумеваете под "по другому", "меняются местами", не говоря о том, что оказывается программа работает только один раз, а потом надо восстанавливать файлы (а кто об этом должен был предупредить?) и т.п.

Я вот за 5 минут ковыряния не смог понять, в чем у вас проблема со вторым файлом, то есть что значит "результат по разному".

Пишите подробно, что нужно сделать, как правильно запускать программу, что вы ожидаете увидеть, что вместо этого получается, тогда можно будет рассчитывать на какую-то помощь.
18 авг 14, 08:42    [16453899]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Shocker.Pro, да , Вы правы. Извините, за это. Попробую, еще раз.
После каждого запуска программы исходные файлы отмечается как уже обработанный, чтобы 2-й раз не использовать эти файлы.

Для ясности в папке можно оставит только 1-й файл (23 12-08-2014 8-16-39.txt) или убрать 1-й символ (#) в название файла и сам макрос. При расчета в листбоксе видно будет вот эти данные Data N karta FIO Narusheniya Otdel, т.е., 1-й (Data=Базовое время), 9-й, 8-й (N karta=Номер карты) и 10-й(FIO=Имя) столбцы из текстового файла. Narusheniya и Otdel "от руки" пишутся. Здесь все нормально.


А при расчета другого файла (24 12-08-2014 8-16-58.txt) вместо 8-го столбца 3-й(Тип), вместо 10-го столбца 4-й (Состояние) столбцы из текстового файла получается. А вместо Narusheniya и Otdel соответственно 5-й (Приор.) и 6-й (Считыватель) столбцы получается.

По моему во обе файлах структура одинаковая. А почему такая разные результаты- вот это я не могу понять
18 авг 14, 10:19    [16454324]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
Во втором файле в отличие от первого нет нарушителей
Поэтому вместо того, чтобы вывести нарушителей, на первый лист просто фигачатся необработанные изначальные данные

With Nar
    If .Count Then
        ReDim Arr(1 To .Count, 5)
            For i = 1 To .Count
                Vch = .Item(i & "")
                Arr(i, 0) = Vch(0): Arr(i, 1) = Vch(1):
                Arr(i, 2) = Vch(2): Arr(i, 3) = Vch(3):
                Arr(i, 4) = Vch(4): Arr(i, 5) = Vch(5)
            Next
    End If
End With

With ThisWorkbook.Worksheets(1)
     R = .Cells(Rows.Count, 1).End(xlUp).Row + 1
     .Cells(R, 1).Resize(UBound(Arr), 6) = Arr
End With
18 авг 14, 12:39    [16455180]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Тогда, что мне надо делать чтобы если в файле нет нарушителей программа для этого файла ничего не делал?
18 авг 14, 13:20    [16455719]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
Добавить дополнительное условие, например так
If Nar.Count Then
  With ThisWorkbook.Worksheets(1)
       R = .Cells(Rows.Count, 1).End(xlUp).Row + 1
       .Cells(R, 1).Resize(UBound(Arr), 6) = Arr
  End With
End If
18 авг 14, 13:36    [16455916]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Добавила, но для некоторых файлов эта проблема остается.
18 авг 14, 14:06    [16456138]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Помогите пожалуйста, очень надо. Добавила условия, но проблема остается.
19 авг 14, 10:53    [16460728]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
Aqil_F
для некоторых файлов
вот вы сами как думаете, не имея этих "некоторых файлов" я могу вам помочь чем-то?
19 авг 14, 10:55    [16460747]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Shocker.Pro,
19 авг 14, 10:59    [16460784]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest


К сообщению приложен файл (22.rar - 85Kb) cкачать
19 авг 14, 11:00    [16460789]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
Код, который вставляет неверные данные, из вашего файла никуда не делся
With ThisWorkbook.Worksheets(1)
     R = .Cells(Rows.Count, 1).End(xlUp).Row + 1
     .Cells(R, 1).Resize(UBound(Arr), 6) = Arr
End With
19 авг 14, 11:07    [16460843]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Shocker.Pro, спасибо все получилась.

Я еще хотела не удалить каждый раз информацию из лист1. Т.е., хочу чтобы новую информацию добавить в 1-ю свободную строку.
И еще понимаю что-то здесь надо менять:
If N = 0 Then .Worksheets(1).UsedRange.Offset (1).ClearContents
              Naruschiteli
              Replase_Fale_Name fn, My_Path_File
              N = N + 1
            End If


Но, как? Не понимаю. Если не трудно, помогите пожалуйста и в этом вопросе, пожалуйста.
19 авг 14, 14:26    [16462666]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
убрать первую строку
19 авг 14, 15:59    [16463364]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Shocker.Pro, первая строка- эта значить весь IF ... END if убрать, или только

 .Worksheets(1).UsedRange.Offset (1).ClearContents
?
20 авг 14, 06:59    [16466013]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
первая строка - это первая строка
End If в первой строке нет
20 авг 14, 08:55    [16466162]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: учет рабочего времени сотрудников  [new]
RSB64
Member

Откуда:
Сообщений: 11
Доброго времени суток, уважаемые! Поставили задачу разработать табель учета рабочего времени. Так вот, почти сделал, и ключевое слово здесь "почти".
Столкнулся с рядом проблем.
проблема первая: есть формула подсчета времени переработки, там где время работы 8 часов считает нормально, но если больше то все полный абзац.
проблема вторая: эта же формула когда считает время причем приближенное к 24 часам, творит все что угодно, и вроде правильно считает, но с минусом, минус убираю выходит фигня.
проблема третья: опять же формулы отказываются считать время ночное с 19:00 часов
проблема четвертая: есть итоговая таблица по времени работы куда с ежедневных табличек (условно отдельно лист) должны аккумулироваться данные, но это опять же происходит через раз. Да табличка итоговая немного сложная, но если честно то я ушатался с ней, может подскажите как прописать универсальную формулу либо поможете с макросами.
Помогите пожалуйста, век помнить буду!!!!!!!

Да не судите строго, я работать с экселем только учусь.

К сообщению приложен файл (файлпример4.rar - 142Kb) cкачать
26 мар 19, 10:16    [21843459]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
RSB64,

Готов помочь на платной основе или бесплатно, но тогда давайте конкретные вопросы по формулам или ждите, если кто захочет вникать и разбираться в Ваших задачах и проблемах.
26 мар 19, 10:49    [21843494]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
RSB64
Member

Откуда:
Сообщений: 11
Спасибо, от оказания платной помощи откажусь.

Давайте пробовать пошагово, но даром:)

=ЕСЛИ(G14-0,5+(G14>"12:")<0;"-";"")&ТЕКСТ(ABS(G14-0,5+(G14<"12:"));"ч:мм") эта формула от общего количества трудочасов в день при вычитании должна давать остаток (образно говоря отработано 8 часов 25 минут, в остатке имеем 25 минут). Но если человек не работал и количество трудочасов 0, то формула все равно проводит вычитание и мы имеем -12 часов.

Так вот что и куда нужно добавить, сможет кто нибудь подсказать, чтобы в этом случае получался НОЛЬ.

Цель: унификация формулы
26 мар 19, 12:04    [21843575]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
RSB64,

Если настройки локали будут таковы, что ч это не часы, а мм это не минуты, то отображаться будет "ч:мм".

Чтобы отображался ноль в Вашей формуле, то добавьте условие проверки на количество часов.
26 мар 19, 12:19    [21843590]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
RSB64
G14>"12:"
А меня вот это очень сильно смущает. Дата сравнивается с текстом. Что там будет в результате - вообще плохо детерминируемо.
26 мар 19, 12:29    [21843609]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
+
Shocker.Pro,

Там вообще без слез не глянешь.
26 мар 19, 12:30    [21843614]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
М-да. А в ячейке G14, судя по файлу, лежит не дата-время, а текст. То есть производится операция над текстом и числом "G14-0,5", судя по всему текст неявно превращается в дату, потом сравнивается уже как текст... та жуть, тут вообще непонятно, как хоть что-то работает.


RSB64, я предлагаю начать с освоения вот этого

К сообщению приложен файл. Размер - 22Kb
26 мар 19, 12:40    [21843629]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
Shocker.Pro,

Можно, конечно, парсить дату, а можно сделать короткими формулами с одним условием в каждой, и применить пользовательский формат. Пользовательский формат будет работать корректно в любой локализации.
26 мар 19, 13:05    [21843659]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
iMrTidy,

скорее всего нет смысла вообще работать с текстовым представлением даты, поэтому я и предлагаю автору изучить формулы для даты-времени
26 мар 19, 13:13    [21843669]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
Кросс!

http://www.excelworld.ru/forum/2-41229-1
26 мар 19, 14:06    [21843768]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
RSB64
Member

Откуда:
Сообщений: 11
это уже интересней, для начала объясню.

я только плюсом за сокращение формул, однако здесь есть маленькая загвоздка в том что время работы у сотрудников разное так контролеры работают и сутки т.е. 24 часа и 12 часов, есть те кто работает 8 часов (+время обеда), кладовщики работают 12 часов без обеда (скользящий). А в конечном счете как не сокращал а графа G так считает наиболее корректно, за исключением времени обеда.

Если человек не работал, а в формуле стоит -1 час обеда, то мы получаем минус 1 час, что соответственно ведет к нечитаемости формулы по причине отрицательного значения, хотя там по сути должен везде стоять НОЛ.

И как я уже говорил пытаюсь замутить универсальную формулу
26 мар 19, 14:37    [21843805]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
В чем проблема с помощью ЕСЛИ исключить отрицательные значения?

=ЕСЛИ(A1<0;0;A1)
26 мар 19, 14:39    [21843807]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
RSB64
Member

Откуда:
Сообщений: 11
отлично, а как в этой формуле замутить время переработки?

=ЕСЛИ(D8;ЕСЛИ(E8-D8-"9:"<0;"-";"+")&ТЕКСТ(ABS(E8-D8-"9:");"ч:мм");"")

При этом данная формула считает время переработки, а с Вашей я только не буду показывать ноль

=ЕСЛИ(A1<0;0;A1)
26 мар 19, 15:05    [21843864]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
RSB64
Member

Откуда:
Сообщений: 11
Да большое спасибо, что находите время на мое просвещение и помощь
26 мар 19, 15:06    [21843865]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
RSB64,

Порассуждаем.

Колонки D и E: очевидно, что учитывается только время, но не день (дата), значит разницы больше, чем 24 часа там быть не может. Отсюда можно сделать вывод, что учесть отрицательные велицины очень просто и тогда формула в колонке G существенно упроститься. Конкретно в G14 в формуле будет всего 24 символа.

Колонка H: исходя из предыдущей логики максимальный рабочий день может быть 24 часа, а значит переработка не может превышать 24 часа, поэтому и здесь можно применить аналогичный принцип с учетом входных параметров, а именно, "стандартной" (ожидаемой) продолжительности рабочего дня и времени на обед. Однако нужно учесть, что может быть как переработка, так и недоработка. Т.к. дата не использутеся, то можно воспользоваться 1, чтобы показывать + или - в зависимости от полученного значения при помощи пользовательского формата. Длинна формулы 30 символов.

Таким образом никакой работы с тексом. Все формулы будут работать быстро и их можно будет использовать для дальнейших расчетов.
26 мар 19, 15:11    [21843872]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
+
RSB64
Да большое спасибо, что находите время на мое просвещение и помощь


Зря Вы дерзите модератору.
26 мар 19, 15:12    [21843873]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
RSB64
Member

Откуда:
Сообщений: 11
Вы неправы, я от души сказал, не представляете как меня уже от этого времени трясет. Вторая неделя пошла! С вами хоть разбираем суть проблемы.
26 мар 19, 15:18    [21843887]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
RSB64
Member

Откуда:
Сообщений: 11
iMrTidy,

может быть больше чем 24 часа, в том то все и дело. Да в сутках больше быть не может, а во времени работы, т.е. времени нахождения на рабочем месте. Как пример пришел на работу в 7:30 ушел 7:35, получаем сутки и 5 минут.

Потому уже и верещу как Тарзан
26 мар 19, 15:21    [21843896]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
RSB64
Member

Откуда:
Сообщений: 11
iMrTidy
Кросс!

http://www.excelworld.ru/forum/2-41229-1


вот кстати здесь мне и подсказали про текст
26 мар 19, 15:24    [21843904]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
RSB64,

Вполне решаемо, в логику добавляется такой параметр как минимальное время рабочего дня, которое будет использоваться, чтобы определить идет ли переработка сверх 24 часов. Но такой подход рано или поздно приведет к ошибке. И по сему нужно либо учитывать дату, либо еще как-то сигнализировать.
26 мар 19, 15:28    [21843915]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
RSB64
iMrTidy
Кросс!

http://www.excelworld.ru/forum/2-41229-1


вот кстати здесь мне и подсказали про текст


И?
26 мар 19, 15:30    [21843918]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
RSB64,

Вам ведь так нужно?
Картинка с другого сайта.

К сообщению приложен файл. Размер - 51Kb
26 мар 19, 16:29    [21843994]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
RSB64
Member

Откуда:
Сообщений: 11
iMrTidy
RSB64,

Вполне решаемо, в логику добавляется такой параметр как минимальное время рабочего дня, которое будет использоваться, чтобы определить идет ли переработка сверх 24 часов. Но такой подход рано или поздно приведет к ошибке. И по сему нужно либо учитывать дату, либо еще как-то сигнализировать.


Вооот, в конечном итоге я и встрял в ошибку.

Как видите листов много (и то их количество урезано), и как итог когда начал пересчитывать, то на сутках не бъется, то на полусутках. Спросил совета, там предложили объединить с текстовыми данными, и опять не выходит сей электронный цветок. Или же когда недобор времени, либо сутки.

Потому и трясет уже
27 мар 19, 12:30    [21844905]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
RSB64
Member

Откуда:
Сообщений: 11
iMrTidy
RSB64,

Вам ведь так нужно?
Картинка с другого сайта.


Скажите а вот столбик "с количеством суток с начала работы" несет какую-то ценность???? А так на первый взгляд достаточно рабочая матрица, мысль была добавить столбцы "рабочего времени", на который потом банально делать ссылки, но ни как не формулировалась в голове.

И не надо мутить сверхсложные формулы, которые в конце концов дадут сбой. А здесь в каждой строке набор не сложных функций и можно менять время, для каждого конкретного дня.

ОТ ДУШИ!!!!!!!
27 мар 19, 12:41    [21844924]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
RSB64
Скажите а вот столбик "с количеством суток с начала работы" несет какую-то ценность????


Конечно, он позволяет безошибочно определить как считать разницу времени.
27 мар 19, 13:14    [21844992]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
RSB64
Member

Откуда:
Сообщений: 11
iMrTidy,

Спасибо!
28 мар 19, 07:05    [21845640]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Microsoft Office Ответить