1

У меня есть куча данных транзакций, содержащих дату, время, идентификатор

как это:

  DATE         TIME           ID 

7/6/2015     9:30:22       0266731550    
7/6/2015     9:33:19       0266731550    
7/6/2015     10:31:38      0266731550    

затем я хочу посчитать, сколько транзакций в день, которые являются уникальными (могут быть идентифицированы по идентификатору), но время не более 5 минут.

Например, существует 3 одинаковых идентификатора, для 2 первых ID 0266731550 считается за 1, потому что его временной интервал с предыдущим ID 0266731550 составляет не более 5 минут (9:33:19-9:30:22 < 5mins 5 минут).

В отличие от третьего идентификатора 0266731550 , он считается равным 1, поскольку его временной интервал с предыдущим идентификатором 0266731550 составляет более 5 минут (10:31:38-9:33:19 > 5mins 5 минут).

PS: я использую MS. Excel 2010

1 ответ1

0

Если вы не против использования VBA, я могу вернуться с более подробным кодом позже, но с псевдо-кодом:

Dim array(1, 1) As Long

For i = 1 To Len(table)

    ' if value is already in the array, skip this part. if not, redim the array and store the value.
    If Not Match(Cells(1, i), array) <> 0 Then
        ReDim array(1, i)
        array(1, i) = Cells(1, i).Value
    End If

    ' write the time intervals for comparison
    Dim intervals(2, 1)
    ' iterate over the column where timestamps are and write all of them to array, checking with array(1, i) to make sure the ID is correct. redim as required.
    ' sort the array and measure for 5min intervals.
    ' keep a unique-values variable that you increment every time a satisfactory interval is found.
Next i

Вы можете отправить эти значения на лист, в файл или в msgbox.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .