查找指定期限内的数据(Power Query)
问题:增加数量列,来源于表2,与代码相同行,指定有效期内数据的和。
表1:
let
源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
已添加索引 = Table.AddIndexColumn(源, "索引"),
插入起始月份 = Table.AddColumn(已添加索引, "起始月份", each Date.Month([价格有效期起])),
插入截止月份 = Table.AddColumn(插入起始月份, "截止月份", each Date.Month([价格有效期止])),
按月份数展开行 = Table.TransformColumns(Table.ExpandListColumn(Table.AddColumn(插入截止月份, "月份", each {[起始月份]..[截止月份]}), "月份"), {"月份", each Text.From(_, "zh-CN") & "月"}),
合并的查询 = Table.NestedJoin(按月份数展开行, {"代码", "月份"}, 表2, {"代码", "月份"}, "表2", JoinKind.LeftOuter),
展开 = Table.ExpandTableColumn(合并的查询, "表2", {"值"}),
分组的行 = Table.Group(展开, {"代码", "名称", "价格有效期起", "价格有效期止", "索引"}, {"数量", each List.Sum([值])}),
排序的行 = Table.Sort(分组的行,{{"索引", Order.Ascending}}),
删除的列 = Table.RemoveColumns(排序的行,{"索引"}),
更改的类型 = Table.TransformColumnTypes(删除的列,{{"代码", Int64.Type}, {"名称", type text}, {"价格有效期起", type date}, {"价格有效期止", type date}, {"数量", Int64.Type}})
in
更改的类型
表2:
let
源 = Excel.CurrentWorkbook(){[Name="表2"]}[Content],
逆透视的其他列 = Table.UnpivotOtherColumns(源, {"代码"}, "月份", "值")
in
逆透视的其他列