powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / подсчёт и вычисление времени работы станков
8 сообщений из 8, страница 1 из 1
подсчёт и вычисление времени работы станков
    #36263838
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Участникам форума, привет!

Подскажите как решить задачу подсчёта итогового значения времени работы в течение дня. Есть список работы станков:

1 Станок 1 20.07.2009 11:42:24
2 Станок 1 20.07.2009 13:37:23
3 Станок 2 20.07.2009 10:00:43
4 Станок 2 20.07.2009 13:37:26
5 Станок 2 20.07.2009 14:54:12
6 Станок 2 20.07.2009 18:27:54
7 Станок 2 21.07.2009 10:16:14
8 Станок 2 21.07.2009 14:04:48
9 Станок 2 21.07.2009 14:47:21
10 Станок 2 21.07.2009 18:35:48

Необходим подсчёт по каждому станку фактического времени работы.

Пример 1. Запуск станка 1 был 20 числа в 11:42:24. Останов в 13:37:23. Отнимаем от времени конца работы время начала работы. Получаем время работы - 13:37:23 - 11:42:24 = фактическое время работы за 20 число.

Пример 2. Станок 2 запускался 20 числа в 10:00:43. Останавливался в 13:37:26. Потом снова запускался в 14:54:12 и работал до 18:27:54 и так далее. Чтобы в этом случае получить время фактической работы за определённое число из каждой чётной записи (окончание работы) вычитаем (нечётную, предыдущую). = > 18:27:54 - 14:54:12 = факт за 20 число, (14:04:48 - 10:16:14) + (18:35:48 - 14:47:21) = факт за 21 число и т. д.

Примеров как подсчитать не нашёл. И возможно ли решить это сводной таблицей? Массив данных большой.
...
Рейтинг: 0 / 0
подсчёт и вычисление времени работы станков
    #36264133
Ivan33,

как вариант с доп столбцом и отдельной итоговой таблицей
...
Рейтинг: 0 / 0
подсчёт и вычисление времени работы станков
    #36264143
Фотография qwrqwr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan33
Необходим подсчёт по каждому станку фактического времени работы.
Чтобы в этом случае получить время фактической работы за определённое число из каждой чётной записи (окончание работы) вычитаем (нечётную, предыдущую). Процитированное - это, конечно, не лучший способ хранения данных - лучше хранить дату начала/окончания в одной строке, к которой они обе относятся.
Предположим что в 1-ом столбце некий Id, он уникальный, монотонно возрастает на единичку - способ ниже работает только для этого предположения.
Тогда для исходных данных в столбцах A:C я бы сделал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Public Sub test()
Dim wbName$, shName$, sSQL$, cnn As ADODB.Connection, rst As ADODB.Recordset
    wbName = ActiveWorkbook.FullName
    shName = ActiveSheet.Name
    Set cnn = New ADODB.Connection
    Set rst = New ADODB.Recordset
    sSQL = "SELECT Q1.F2, int(Q1.F3), cdate(sum(Q1.F3-Q2.F3)) AS in_work " _
           & "FROM (SELECT * FROM [" & shName & "$A1:C65000] as T WHERE (T.F1 Mod 2)=0) AS Q1 " _
           & "INNER JOIN (SELECT * FROM [" & shName & "$A1:C65000] as T WHERE (T.F1 Mod 2)=1) AS Q2 " _
           & "ON (Q1.F2=Q2.F2) AND (Q1.F1-Q2.F1=1) " _
           & "GROUP BY Q1.F2, int(Q1.F3);"
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & wbName & ";Extended Properties=""Excel 8.0;HDR=No;IMEX=2"""
    rst.Open sSQL, cnn, adOpenStatic
    With Worksheets(shName)
        .Columns("F:H").ClearContents
        .Range("F1").CopyFromRecordset rst
        .Columns("H").NumberFormat = "[h]:mm:ss"
        .Columns("F:H").EntireColumn.AutoFit
    End With
    rst.Close: Set rst = Nothing
    cnn.Close: Set cnn = Nothing
End Sub
надо запустить макрос test находясь на листе с данными - он поместит итоги, группированные по имени станка / дате (без времени) в столбцы F:H
...
Рейтинг: 0 / 0
подсчёт и вычисление времени работы станков
    #36264174
Фотография qwrqwr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS у меня предполагалось, что дата/время находятся в одном (третьем) столбце - хотя из Вашего неформатированного примера это неочевидно.
...
Рейтинг: 0 / 0
подсчёт и вычисление времени работы станков
    #36264214
_Boroda_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan33,

Со сводной таблицей и доп столбцом
...
Рейтинг: 0 / 0
подсчёт и вычисление времени работы станков
    #36264372
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwrqwrPS у меня предполагалось, что дата/время находятся в одном (третьем) столбце - хотя из Вашего неформатированного примера это неочевидно. а оно и находится. сейчас попробую ваш вариант.
...
Рейтинг: 0 / 0
подсчёт и вычисление времени работы станков
    #36264386
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Boroda_Ivan33,

Со сводной таблицей и доп столбцом да, в самую точку и просто. спасибо.
...
Рейтинг: 0 / 0
подсчёт и вычисление времени работы станков
    #36264461
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan33_Boroda_Ivan33,

Со сводной таблицей и доп столбцом да, в самую точку и просто. спасибо. думал, что через массивы можно это дело решить.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / подсчёт и вычисление времени работы станков
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]