干财务分析,一个正规、全维度的“日历户口本”(日期维度表)是必备的基础设施,手动下拉太低效了。
我们直接用 Power Query 的 M 代码一键生成2024到 2028 年这个期间的日期维度表(包含年度、半年、季度、月份、日),如果你的分析时间跨度更大,可以直接在下面函数中调整期间。
👉 你的操作任务:
- 在 Excel 里点击顶部菜单栏的 “数据” -> “获取数据” -> “来自其他源” -> “空白查询”,这会帮你打开 Power Query 编辑器。
- 在弹出的窗口顶部点击 “高级编辑器”,把里面的代码全删掉,粘贴下面这段我写好的带注释的 M 代码,然后点击“完成”:
let
// 1. 设定起始日期和结束日期 (这里以生成2024至2028年这个期间为例)
StartDate = #date(2024, 1, 1),
EndDate = #date(2028, 12, 31),
// 2. 计算这两天之间总共有多少天
Duration = Duration.Days(EndDate - StartDate) + 1,
// 3. 生成一个连续的日期列表(从开始日期起,按1天递增)
DateList = List.Dates(StartDate, Duration, #duration(1, 0, 0, 0)),
// 4. 将纯粹的列表转换成可以加列的表格
ConvertedToTable = Table.FromList(DateList, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
// 5. 修改列名,并强制规定它的数据类型必须是"日期"
RenamedColumns = Table.RenameColumns(ConvertedToTable,{{"Column1", "日期"}}),
ChangedType = Table.TransformColumnTypes(RenamedColumns,{{"日期", type date}}),
// 6. 添加各个时间维度的列 (年、月、日、季度、半年)
AddYear = Table.AddColumn(ChangedType, "年度", each Date.Year([日期]), Int64.Type),
AddMonth = Table.AddColumn(AddYear, "月份", each Date.Month([日期]), Int64.Type),
AddDay = Table.AddColumn(AddMonth, "日", each Date.Day([日期]), Int64.Type),
AddQuarter = Table.AddColumn(AddDay, "季度", each "Q" & Text.From(Date.QuarterOfYear([日期])), type text),
AddHalfYear = Table.AddColumn(AddQuarter, "半年", each if Date.Month([日期]) <= 6 then "上半年" else "下半年", type text)
in
AddHalfYear
![图片[1]-用 Power Query 的 M 代码一键生成指定跨度期间的日期维度表(包含年度、半年、季度、月份、日等)-小微之家 | 汪斌带你开公司 | 老汪洞察](https://xiaoweihome-img.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/2026/03/20260314161311496-1024x379.png)
把这个查询命名为 t_Date,然后点击左上角的“关闭并上载至…”,勾选 “仅创建连接” 和 “将此数据添加到数据模型”,就可以在数据模型和其他带日期的事实表建立一对多的关系连接了。
生成这个包含 5年的全维度的日期表并装进模型后,来这里留言哦,搞定了吗?
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END











暂无评论内容