如何在powerquery中创建月份table (M)

How to create month table in powerquery (M)

我正在尝试创建 month/year table 电源查询 (M)。似乎没有简单的方法可以做到这一点。这是我为实现该目标而创建的代码。

这是我的代码。如果有人能找到更简单、更优雅的解决方案,我们将不胜感激。

要使用此代码,请创建空白查询,转到 高级编辑器 并替换此代码的现有代码。

let
    first_date = #date(2020, 1, 1),
    last_day = DateTime.LocalNow(),
    num_months = ((Date.Year(last_day) - Date.Year(first_date)) * 12 + Date.Month(last_day) - Date.Month(first_date)),
    list_of_num = List.Numbers(0, num_months, 1),
    table_from_list = Table.FromValue(list_of_num, [DefaultColumnName = "Index"]),
    add_col_year = Table.AddColumn(table_from_list, "Year", each Date.Year(Date.AddMonths(first_date, [Index])), Int64.Type),
    add_col_month = Table.AddColumn(add_col_year, "Mes", each Date.Month(Date.AddMonths(first_date, [Index])), Int64.Type)
in
    add_col_month

不清楚您要查找的内容,但是

let Years =  Table.ExpandListColumn(Table.FromRecords({[Years = {1980..2020}]}), "Years"),
#"Add Months" = Table.ExpandListColumn(Table.AddColumn(Years, "Months", each {1..12}), "Months"),
#"Add Month Names" = Table.AddColumn(#"Add Months", "MonthName", each Date.MonthName(#datetime([Years], [Months], 1,0,0,0)))
in #"Add Month Names"

生成一个这样的table,你可以在代码中更改start/ending年份