如何根据首末日期生成连续的序列?PQ套路公式对日期不好使了

Excel学习世界 2025-04-01 21:59:19

如何根据起始和结束值生成一个连续的序列?PQ 中有这个套路。那么如果是日期呢?日期能不能也生成序列?

案例:

将下图 1 中的两列日期变成连续的日期序列,日期区间内的姓名重复显示,效果如下图 2 所示。

解决方案:

1. 选中数据表的任意单元格 --> 选择任务栏的“数据”-->“来自表格/区域”

2. 在弹出的对话框中保留默认设置 --> 点击“确定”:

表格已经上传至 Power Query。

3. 将公式栏中两列日期的格式从 datetime 修改为 date。

4. 选择任务栏的“添加列”-->“自定义列”

5. 在弹出的对话框中输入以下公式 --> 点击“确定”:

{[起始]..[结束]}

然而结果却出错了,这是因为列表的构造不支持日期序列。

既然知道了原因,那就好办了,把日期转换成数值不就行了吗。

6. 将两列日期格式分别修改为“整数”。

7. 选择任务栏的“添加列”-->“自定义列”

8. 将列名修改为“日期”--> 输入以下公式 --> 点击“确定”:

{[起始]..[结束]}

9. 将“日期”列表“扩展到新行”。

10. 将“日期”列修改为日期格式。

11. 删除“起始”和“结束”列。

12. 将表格上传至指定位置。

右侧绿色的表格就是按时间区间重复后的结果。

如果学会了 M 函数,那么上述第 6 至第 10 步只需简化成一个公式。

1. 添加“自定义列”。

2. 设置标题 --> 在公式区域输入以下公式:

List.Transform(

{Number.From([起始])..Number.From([结束])},

Date.From

)

这段公式的作用就是先将两列日期转换成数值,生成列表,然后再转换回日期格式。

3. 将日期扩展到新行,结果是一样的。

0 阅读:0

Excel学习世界

简介:Excel 学习交流