查找指定期限内的数据(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
    逆透视的其他列

 

posted @ 2024-01-14 16:07  熬肥妖  阅读(65)  评论(0编辑  收藏  举报