|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
Помогите, необходимо вычислить рабочее время: |A1 | A1|10.01.2012 7:33:45 | А2|10.01.2012 9:35:07 | 10.01.2012 9:40:09 10.01.2012 10:53:15 10.01.2012 10:57:43 10.01.2012 12:19:03 10.01.2012 12:22:30 10.01.2012 13:55:51 10.01.2012 14:00:20 10.01.2012 15:43:44 10.01.2012 15:46:44 10.01.2012 17:30:02 11.01.2012 7:26:32 11.01.2012 8:54:15 11.01.2012 8:58:18 11.01.2012 10:13:04 11.01.2012 10:17:53 11.01.2012 11:02:48 11.01.2012 12:04:38 11.01.2012 12:10:24 11.01.2012 13:39:19 11.01.2012 13:42:23 11.01.2012 14:56:43 11.01.2012 14:59:36 11.01.2012 16:29:46 11.01.2012 16:32:41 11.01.2012 17:30:18 12.01.2012 9:54:43 12.01.2012 11:38:19 12.01.2012 11:41:16 12.01.2012 12:45:11 12.01.2012 12:48:19 12.01.2012 13:55:13 12.01.2012 13:57:54 12.01.2012 15:16:29 12.01.2012 15:18:55 12.01.2012 17:46:53 13.01.2012 7:32:58 13.01.2012 7:44:16 13.01.2012 9:18:52 13.01.2012 9:21:58 13.01.2012 12:20:00 13.01.2012 12:23:43 13.01.2012 14:20:27 13.01.2012 14:27:09 13.01.2012 16:12:38 Необходимо извлечь время в дне с 8.00-13.00 и с 13.00-17.00 и суммировать, т.е. получить отработанное время в дне! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 08:59 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
а что это за цифирки? время прихода и ухода? а как их отличать? четное-нечетное? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 09:18 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
да=) есть второй столбец, простите 10.01.2012 9:40:09 вход 10.01.2012 10:53:15 выход 10.01.2012 10:57:43 вход 10.01.2012 12:19:03 выход 10.01.2012 12:19:04 выход - это если система затупила такое бывает может раз в месяц. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 09:32 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
Может файлом сподручнее ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 09:53 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
Нужна прога на VBA? или формулами? Где находятся исходные данные? Если в БД - может проще будет там сделать запросами? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 11:24 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
хранится в MSQL, да лучше бы скриптом=) а так чем угодно, надо успеть мне за сегодня. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 11:35 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
Правильно я понимаю, что интервал между временем 16:45 (вход) и 17:10 (выход) должен посчитаться как 15 минут? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 11:43 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
Shocker.ProПравильно я понимаю, что интервал между временем 16:45 (вход) и 17:10 (выход) должен посчитаться как 15 минут? да правильно, и соответственно с утра также, а если интервал попал в обед, то и его вычесть. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 11:44 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
svovachхранится в MSQL.Это что за зверь? MS SQL? MySQL? что-то ещё? тогда почему файл примера - в Экселе? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 12:10 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
svovachесли интервал попал в обед, то и его вычесть. Обед - это когда? с учётом, что svovachс 8.00-13.00 и с 13.00-17.00 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 12:11 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
с 12-13 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 12:16 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
блин, с 13-14 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 12:16 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
Akina, ты сделаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 12:40 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
Я не умею сделать, когда ни хрена не понимаю, что именно надо сделать... А вообще я предпочитаю заставить автора понять свою задачу - если поставить ему мозги на место, обычно выясняется, что он и сам всё может сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 13:58 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
D excele я посчитал, вручную, но это временное решение. есть диапазон времени: 11.01.2012 7:26:32 вход 11.01.2012 8:54:15 выход 11.01.2012 8:58:18 вход 11.01.2012 10:13:04 выход 11.01.2012 10:17:53 вход 11.01.2012 11:02:48 выход 11.01.2012 12:04:38 вход 11.01.2012 12:10:24 выход 11.01.2012 13:39:19 вход 11.01.2012 13:42:23 выход 11.01.2012 14:56:43 вход 11.01.2012 14:59:36 выход 11.01.2012 16:29:46 вход 11.01.2012 16:32:41 выход 11.01.2012 17:30:18 вход Рабочий день с 8.00-17.00 и обед с 13.00-14.00. В итоге задень человек был на рабочем месте: 8:39:34 из этого времени вычитаем: 1 час получим 7:39:34. Но есть случай сложнее: когда человек пришел не как положено и вообще весь день пробегал гдето. 11.01.2012 12:04:38 вход 11.01.2012 12:10:24 выход 11.01.2012 13:30:19 вход 11.01.2012 13:50:19 выход Рабочий день всего: 0:05:46. Вот, необходим скрипт на T-SQL либо формула в экселе. Вот такая задача. На вопрос как сделал в экселе: прошел по всей таблице и выравнял время прихода до 8 и ухода до 17 вычел обед. Понимаю что это не по профессиональному, но уже надо было сдать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 14:22 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
svovachнеобходим скрипт на T-SQL либо формула в экселе. Давайте определяться. Либо требуется запрос на SQL - тогда указывайте СУБД и точную структуру исходной таблицы. Либо нужна формула в Экселе - тогда выкладывайте исходный вид файла, без ваших дополнений и всяких там украшательств. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 15:28 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
MSSQL 2008R2 timeval - datetime mark - varchar (30) Значения: timeval \ mark 10.01.2012 9:40:09 \вход 10.01.2012 10:53:15 \выход 10.01.2012 10:57:43 \вход 10.01.2012 12:19:03 \выход 10.01.2012 12:22:30 \вход .... как указано выше. ну а excel тоже самое но в ячейках (что тут в принципе представлять, как экспортирован так и есть). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 15:58 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
ну например... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 18:01 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
вариант Sub svovach () a = [a1].CurrentRegion.Value ReDim b(1 To UBound(a) / 2, 1 To 2) Set Dict = CreateObject("scripting.dictionary") Dim ts, tf, tmp, te, i For i = 2 To UBound(a) If Not Dict.exists(Format(a(i, 1), "dd.mm.yyyy")) Then Dict.Add Format(a(i, 1), "dd.mm.yyyy"), i ts = Format(a(i, 1), "hh:nn:ss") Select Case ts Case Is < #8:00:00 AM# ts = #8:00:00 AM# Case #1:00:00 PM# To #2:00:00 PM# ts = #2:00:00 PM# Case Is > #5:00:00 PM# ts = #5:00:00 PM# End Select tf = 0 x = x + 1 tmp = a(i, 2) b(x, 1) = Format(a(i, 1), "dd.mm.yyyy") End If 'Else If tmp <> a(i, 2) Then If a(i, 2) = "âõîä" Then ts = Format(a(i, 1), "hh:nn:ss") Select Case ts Case Is < #8:00:00 AM# ts = #8:00:00 AM# Case #1:00:00 PM# To #2:00:00 PM# ts = #2:00:00 PM# Case Is > #5:00:00 PM# ts = #5:00:00 PM# End Select Else tf = Format(a(i, 1), "hh:nn:ss") Select Case tf Case Is < #8:00:00 AM# tf = #8:00:00 AM# Case #1:00:00 PM# To #2:00:00 PM# tf = #2:00:00 PM# Case Is > #5:00:00 PM# tf = #5:00:00 PM# End Select te = CDate(tf) - CDate(ts) If (CDate(ts) <= #1:00:00 PM#) And (CDate(tf) >= #2:00:00 PM#) Then te = te - (1 / 24) b(x, 2) = b(x, 2) + te ' Debug.Print Format(te, "hh:nn:ss") & "[-]" & Format(ts, "hh:nn:ss") & "[-]" & Format(tf, "hh:nn:ss") End If End If tmp = a(i, 2) 'End If Next [h1].Resize(x, 2) = b End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2012, 00:28 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
Akinaну например... Спасибо вариант, параметры worktime изменить можно? R Dmitryвариант + Sub svovach () a = [a1].CurrentRegion.Value ReDim b(1 To UBound(a) / 2, 1 To 2) Set Dict = CreateObject("scripting.dictionary") Dim ts, tf, tmp, te, i For i = 2 To UBound(a) If Not Dict.exists(Format(a(i, 1), "dd.mm.yyyy")) Then Dict.Add Format(a(i, 1), "dd.mm.yyyy"), i ts = Format(a(i, 1), "hh:nn:ss") Select Case ts Case Is < #8:00:00 AM# ts = #8:00:00 AM# Case #1:00:00 PM# To #2:00:00 PM# ts = #2:00:00 PM# Case Is > #5:00:00 PM# ts = #5:00:00 PM# End Select tf = 0 x = x + 1 tmp = a(i, 2) b(x, 1) = Format(a(i, 1), "dd.mm.yyyy") End If 'Else If tmp <> a(i, 2) Then If a(i, 2) = "âõîä" Then ts = Format(a(i, 1), "hh:nn:ss") Select Case ts Case Is < #8:00:00 AM# ts = #8:00:00 AM# Case #1:00:00 PM# To #2:00:00 PM# ts = #2:00:00 PM# Case Is > #5:00:00 PM# ts = #5:00:00 PM# End Select Else tf = Format(a(i, 1), "hh:nn:ss") Select Case tf Case Is < #8:00:00 AM# tf = #8:00:00 AM# Case #1:00:00 PM# To #2:00:00 PM# tf = #2:00:00 PM# Case Is > #5:00:00 PM# tf = #5:00:00 PM# End Select te = CDate(tf) - CDate(ts) If (CDate(ts) <= #1:00:00 PM#) And (CDate(tf) >= #2:00:00 PM#) Then te = te - (1 / 24) b(x, 2) = b(x, 2) + te ' Debug.Print Format(te, "hh:nn:ss") & "[-]" & Format(ts, "hh:nn:ss") & "[-]" & Format(tf, "hh:nn:ss") End If End If tmp = a(i, 2) 'End If Next [h1].Resize(x, 2) = b End Sub Классно работает, но неправильно считает, получилось за 10.01.2012 9:40:09 10.01.2012 10:53:15 10.01.2012 10:57:43 10.01.2012 12:19:03 10.01.2012 12:22:30 10.01.2012 13:55:51 10.01.2012 14:00:21 10.01.2012 15:43:44 10.01.2012 15:46:44 10.01.2012 17:30:02 Ответ: 10.01.2012 31:01:59, а надо 10.01.2012 6:08:35. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2012, 05:54 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
svovachпараметры worktime изменить можно? Разрешение нужно? Да пжалста. Хочешь - как я сделал, жёстко в коде, поправив присвоения, хочешь - с листа или формы бери, хочешь - inputbox воткни... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2012, 11:07 |
|
Exel, извлечение рабочего времени из диапозона дататайм
|
|||
---|---|---|---|
#18+
svovach, Код: vbnet 1.
тут кракозябы исправьте на "вход" ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2012, 16:37 |
|
|
start [/forum/topic.php?fid=61&msg=38008630&tid=2175281]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 153ms |
0 / 0 |