如何用Excel将不规则时间戳数据转换为等间隔时间序列
如何用Excel将不规则时间戳数据转换为等间隔时间序列?
我有三组对应不同变量的不规则时间戳数据,希望将其转换为等间隔时间数据,以便进行加减运算。每组数据在7天内包含300至600条观测值,想知道怎么用Excel把它们转换成间隔合理(比如15分钟)的标准时间序列。
数据示例
现有数据样本
| Time | Solar | Wind | Load |
|---|---|---|---|
| 0.018 | 23.70282636 | ||
| 0.039 | -168.7847188 | ||
| 0.048 | 23.50072404 | ||
| 0.077 | 23.31550898 | ||
| 0.093 | -164.5686453 | ||
| 0.107 | 23.354731 | ||
| 0.137 | 23.59986857 | ||
| 0.146 | -161.0646197 | ||
| 0.166 | 24.42353083 | ||
| 0.182 | 25.45310866 | ||
| 0.193 | -157.9259872 | ||
| 0.197 | 26.43978741 | ||
| 0.206 | 27.37498727 | ||
| 0.216 | 28.35880608 | ||
| 0.227 | -152.6355957 | ||
| 0.268 | -149.0160186 | ||
| 0.290 | 30.36385532 | ||
| 0.293 | -149.8404255 | ||
| 0.295 | -155.3494979 | ||
| 0.300 | 23.66498298 | ||
| 0.305 | 15.42021702 | ||
| 0.310 | 7.690748936 |
期望数据样式
| Interval | Solar | Wind | Load |
|---|---|---|---|
| 0.0000 | Y1 | Y2 | Y3 |
| 0.0104 | |||
| 0.0208 | |||
| 0.0313 | |||
| 0.0417 | |||
| 0.0521 | |||
| 0.0625 | |||
| 0.0729 | |||
| 0.0833 | |||
| 0.0938 | |||
| 0.1042 | |||
| 0.1146 |
具体操作步骤
1. 生成等间隔时间序列
- 先确定时间范围:找到原始数据里最早和最晚的时间戳(比如示例数据最早是0.018,最晚是0.310)
- 换算15分钟对应的天数:15分钟 = 15/(24*60) = 0.0104167天,和期望间隔一致
- 在新列(比如E列)输入起始时间(可从0开始,或把原始最早时间向下取整到最近的15分钟间隔),选中该单元格后右键选择「填充」→「序列」,设置步长为0.0104167,终止值设为原始数据的最晚时间,即可生成所有等间隔时间点
2. 匹配并获取对应变量值
根据需求,有两种常用方法:
方法一:取最接近的原始值(最近邻匹配)
用INDEX+MATCH组合函数,比如要获取对应时间点的Solar值,在F2单元格输入:
=INDEX($B$2:$B$22,MATCH(MIN(ABS($E2-$A$2:$A$22)),ABS($E2-$A$2:$A$22),0))
- 注意:Excel 2019及更早版本输入后需按
Ctrl+Shift+Enter生效;Excel 365或新版直接回车即可 - 把公式中的
$B$2:$B$22换成Wind列(C列)或Load列(D列),就能获取对应变量的值
方法二:线性插值(平滑过渡)
如果需要更精准的连续值,用FORECAST.LINEAR函数,在F2单元格输入:
=FORECAST.LINEAR($E2,$B$2:$B$22,$A$2:$A$22)
这个函数会根据相邻两个原始时间点的数值进行线性计算,适合Solar、Wind这类连续变化的变量,直接下拉填充即可
3. 整理成目标格式
把生成的等间隔时间(E列)移到第一列,再将填充好的Solar、Wind、Load列对应放置,即可得到标准时间序列
内容的提问来源于stack exchange,提问作者Laurens
相关产品推荐
相关产品推荐

