今天教大家如何用 M 函数生成持续的日期序列。
案例:根据下图 1 的数据表,计算出每一天账上的总金额。
效果如下图 2 所示。


解决方案:
1. 将表格上传至 Power Query。



2. 将公式中的两个 datetime 修改为 date。



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

4. 将列名修改为“日期”--> 输入以下公式 --> 点击“确定”:
List.Dates([起存日期],Duration.TotalDays([到期日期]-[起存日期])+1,#duration(1,0,0,0))
公式释义:
duration 只在 M 函数中才有,用于处理持续时间;语法为 #duration(天,时,分,秒);
Duration.TotalDays 函数的作用是返回 duration 跨越的总天数;[到期日期]-[起存日期])+1 就是总天数;
List.Date 的作用是生成日期列表;语法为 List.Date(起始日期,构建多少个,间隔)。


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


6. 选中“日期”列 --> 选择任务栏的“主页”-->“分组依据”

7. 将列名改为“金额”--> 在“操作”中选择“求和”--> 在“柱”中选择“金额”--> 点击“确定”


8. 将“日期”列按升序排序。


9. 选择“主页”-->“关闭并上载”-->“关闭并上载至”

10. 选择“表”及所需上载至的位置 --> 点击“加载”


11. 将 E 列的格式修改为日期。
