如何在Excel/PowerQuery中拆分日期范围,实现标题按日重复行
拆分日期范围为每日行的两种实现方法
Power Query 操作步骤
- 选中你的数据区域,点击「数据」选项卡 → 「从表格/区域」(记得勾选「我的表格有标题」)
- 进入Power Query编辑器后,添加自定义列,粘贴公式:
{Number.From([开始日期])..Number.From([结束日期])}
这个公式会把起止日期转换成数字序列,对应范围内的每一天 - 选中新建的自定义列,点击「转换」选项卡 → 「展开到新行」
- 将展开后的列转成日期格式:选中列 → 「转换」→ 「数据类型」→ 「日期」
- 最后点击「关闭并上载」,就能得到标题重复、每行对应一个日期的结果
Excel 函数实现方案
适用于Excel 365/2021及以上版本(支持动态数组)
假设标题在A列,开始日期在B列,结束日期在C列,第一行数据从第2行开始,在空白单元格输入以下公式:
=LET( 日期序列, SEQUENCE(C2-B2+1,1,B2), 重复标题, REPT(A2&"|",C2-B2+1), HSTACK(TEXTSPLIT(重复标题,"|",,TRUE), 日期序列) )
- 简单解释:
SEQUENCE生成从开始日期到结束日期的每日日期序列REPT把标题重复对应天数,用|做分隔符TEXTSPLIT把重复的标题拆分成单独行HSTACK将标题列和日期列合并,直接生成所有结果行
适用于旧版Excel(无动态数组)
- 在D2单元格输入
=A2,E2输入=B2 - D3单元格输入
=IF(E3<=$C$2,A2,""),E3输入=E2+1 - 选中D3:E3单元格,下拉填充直到E列的日期超过C列的结束日期
- 最后筛选掉D列空值的行,就能得到目标结果
内容的提问来源于stack exchange,提问作者user20676806
相关产品推荐
相关产品推荐

