在每小时数据中添加缺少的时间间隔

时间:2011-06-20 12:23:55

标签: excel vba

我正在寻找添加缺失时间间隔的解决方案

缺少小时的每小时数据样本

06.19.2011 00:00:00
06.19.2011 01:00:00
06.19.2011 02:00:00
06.19.2011 03:00:00
06.19.2011 04:00:00
06.19.2011 05:00:00
06.19.2011 07:00:00
06.19.2011 08:00:00

每小时丢失两个小时的数据

06.19.2011 00:00:00
06.19.2011 01:00:00
06.19.2011 02:00:00
06.19.2011 05:00:00
06.19.2011 07:00:00
06.19.2011 08:00:00

因此需要插入缺少的间隔以保持动态图表的准确性

06.19.2011 03:00:00
06.19.2011 04:00:00

2 个答案:

答案 0 :(得分:2)

看看是否有效(假设您的数据位于A列,从第1行开始):

Sub AddMissingTimes()
    Dim lastRow As Long, t as long

    lastRow = Range("A1").End(xlDown).Row

    For t = lastRow To 2 Step -1
        If DateDiff("h", Cells(t, 1), Cells(t - 1, 1)) <> -1 Then
            Cells(t, 1).EntireRow.Insert
            Cells(t, 1) = DateAdd("h", -1, Cells(t + 1, 1))
            t = t + 1
        End If
    Next t
End Sub

答案 1 :(得分:0)

数据是否需要特定于日期并存储在表中?可以在源查询中使用的SQL选项是创建一个包含24条记录的表 - 每小时一条记录 - 然后从小时表到表进行左连接。例如:

表zsysHours Field HourValue 数据:0,1,2 ...... 23

SELECT zsysHours.HourValue, HourlyData.Value FROM zsysHours 
LEFT JOIN HourlyData ON zsysHours.HourValue=HourlyData.HourValue

这也可以通过日期/时间值来完成,只是让它更复杂。