如何将Excel单列数据拆分为24列,每行数据对应单日观测值
Excel单列时序数据拆分单日24行转24列操作方法
以下提供3种不同场景的操作方案:
方法1:快速填充法(无公式,适合新手)
操作零门槛,不需要掌握函数规则:
- 假设原始数据存在A列,从A1开始存储。在B1单元格输入
=A1,C1输入=A2,依次填充到Y1(第24列)输入=A24 - 选中B1到Y1这一整行24个单元格,按住单元格右下角的填充柄往下拖拽到对应行数即可(5年数据共需拖拽约1826行)
- 全选拆分出的所有数据,右键选择「粘贴为值」,把公式转为固定数值,避免后续修改原始数据时产生联动变化
注意:如果原始数据不是从A1开始存储,对应修改单元格引用即可
方法2:INDEX函数法(动态更新,适合原始数据需频繁变动的场景)
公式可自动适配原始数据变动,不需要重复操作:
- 假设原始数据存在A列,A1是表头、A2开始存储实际观测值,拆分后的第一行从B2开始放置
- 在B2单元格输入公式:
=INDEX($A:$A, (ROW(A1)-1)*24 + COLUMN(A1) + 1) - 将公式向右拖拽24列,再向下拖拽到所有天数全部显示完成即可
公式解释:ROW(A1)获取当前行号,乘以24得到当前天数之前的总数据量;COLUMN(A1)获取当前列号,对应单日的第N条观测值;末尾加1是跳过A列表头的偏移量,如无表头可直接删掉该偏移值
方法3:Power Query法(适合超大数据量,支持一键刷新)
数据量过万条、用公式卡顿的时候推荐使用:
- 选中原始数据列,点击「数据」选项卡 → 「从表格/区域」导入Power Query编辑器
- 点击「添加列」选项卡 → 「索引列」→ 选择「从1开始」新增序号列
- 新增自定义列,公式输入
Number.RoundDown(([索引]-1)/24) + 1,列名设置为「天数」 - 再新增自定义列,公式输入
Number.Mod([索引]-1,24) + 1,列名设置为「小时序号」 - 选中「小时序号」列,点击「转换」选项卡 → 「透视列」,值列选择原始观测值列,聚合值函数选择「不要聚合」
- 删除多余的索引列、天数列,点击「关闭并上载」即可将拆分后的数据导出到Excel表
后续原始数据更新后,只需在生成的拆分表上右键选择「刷新」即可自动完成重新拆分,不需要重复操作
内容的提问来源于stack exchange,提问作者user243550
相关产品推荐
相关产品推荐

