寻找任何可以帮助创建这个虚拟数据集的建议/提示
从此表创建另一个表
ID MOB date(dd-mm-yyyy)
A01 2 01-07-2019
A02 3 01-02-2019
这是所需的输出:每次使用 mob 时月份都会增加
ID MOB date(dd-mm-yyyy)
A01 2 01-07-2019
A01 2 01-08-2019
A02 3 01-02-2019
A02 3 01-03-2019
A02 3 01-04-2019
我在 Excel 中使用 Power 查询,添加列>自定义列>在查询编辑器中使用了这个公式
={1..[MOB]}
输出结果如下:
ID MOB date(dd-mm-yyyy)
A01 2 01-07-2019
A01 2 01-07-2019
A02 3 01-02-2019
A02 3 01-02-2019
A02 3 01-02-2019
关闭查询编辑器并执行关闭和加载时出现问题 - 它不会加载,因为它不支持使用 {..} 生成的数据
关于此查询还有其他信息吗?或者还有其他想法可以实现这一点以及日期增量
提前致谢 :)
答案1
当您将新列扩展为行时,它会在每个原始日期内有效地创建从 1 到 MOB 的索引。
您只需要在原始月份中添加索引-1 即可获得增加的月份。
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", type text}, {"MOB", Int64.Type}, {"date", type date}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each {1..[MOB]}),
#"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"),
#"Added Custom1" = Table.AddColumn(#"Expanded Custom", "incremented_date", each Date.AddMonths([date],[Custom]-1)),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Custom", "date"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Removed Columns",{{"incremented_date", type date}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type1",{{"incremented_date", "date"}})
in
#"Renamed Columns"
答案2
您可以使用该Table.TransformRows
方法List.Accumulate
创建日期列表。
let
Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", type text}, {"MOB", Int64.Type}, {"date", type date}}),
//transform column 3 into a list of dates based on column2
dtList= Table.FromRecords(
Table.TransformRows(#"Changed Type",
(r)=>Record.TransformFields(
r, {"date",each //List.Dates(r[date],r[MOB],#duration(1,0,0,0))}))),
List.Accumulate({0..r[MOB]-1},{}, (state,current)=> state & {Date.AddMonths(r[date],current)} )}))),
//expand the date list column
#"Expanded date" = Table.ExpandListColumn(dtList, "date"),
#"Changed Type1" = Table.TransformColumnTypes(#"Expanded date",{{"ID", type text}, {"MOB", Int64.Type}, {"date", type date}})
in
#"Changed Type1"