填补破碎的时间序列数据集的缺失时间

填补破碎的时间序列数据集的缺失时间

我从 Google Analytics 下载了每分钟的数据。但是,它只提供了每分钟值大于零的条目。

我想绘制这些数据的图表,但在此之前,我想在连续的时间序列中看到它,并在源没有数据的几分钟内注入明确的零。

我已使用以下方法将“小时”(列A)和“分钟”(列B)转换为“时间”(列G

=TIME(RIGHT(A3,2),B3,0)

我尝试使用索引/匹配

=INDEX($C$3:$C$954,MATCH(H3,$G$3:$G$954,0))

在列中I引用列中的连续时间序列H,返回列中的数据C,但它返回#N/A

下面是在列中手动输入的所需结果的屏幕截图 I

屏幕截图已更新

因为H612:03:00 AM,所以I6应该包含2,这是来自的值 C3,因为G312:03:00 AM

类似地,H11 =  G4 =  12:08:00 AMI11 =  C4 =  1。 

H列中不存在值 的行G应该0在列中 有一个I

答案1

H问题是由于当您使用 Excel 的线性系列填充自动填充列中的时间与使用该函数生成的时间相比存在浮点差异造成的TIME()

可以通过=H6-G3在任何单元格中输入来确认,或者选择H6,然后按 ,F2接着按Enter。请注意,虽然该F2方法可用于一次更正一个时间值,但对于任何大量单元格来说,这样做并不方便。

解决方案是Continuous Time使用公式生成值。

使用 OP 公式的工作表截图

输入以下公式H3,然后按 ctrl-enter/copy-paste/fill-down/auto-fill 直到表格列的末尾H

=IF(ISTEXT(H2),TIME(RIGHT(A3,2),0,0),TIME(HOUR(H2),MINUTE(H2)+1,0))

请注意,时间值可以保持原样,或者通过复制然后粘贴为值转换为文字值。

如您所见,当列中存在匹配时间时,列中的索引/匹配公式I现在将从列中选择用户。CG


编辑:

虽然上述公式是“强大的”,并且允许在标题上方插入/删除行而不会破坏它,但正如斯科特指出的那样(特别是如果复制/粘贴为值),有一个更简单、更不强大的版本:

=TIME(RIGHT($A$3,2),ROW()-3,0)

进一步简化可得到以下最简单的公式:

=TIME(0,ROW()-3,0)

剩下要做的就是修改公式,以便在时间缺失时生成零:

=IFERROR(INDEX($C$3:$C$954,MATCH(H3,$G$3:$G$954,0)),0)

使用修改公式的工作表截图

相关内容