思路:获得去重客户,然后筛选出对应的客户表,表内按日期选择最大的2个值。
- let
- 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
- 更改的类型 = Table.TransformColumnTypes(源,{{"日期", type date}, {"客户", type text}, {"产品", type text}, {"销售额", Int64.Type}}),
- 删除的副本 = Table.Distinct(Table.SelectColumns(更改的类型,{"客户"})),
- <font color="#ff0000"> 自定义1 = Table.AddColumn(删除的副本,"客户2",(x)=>Table.MaxN(Table.SelectRows(更改的类型,each x[客户]= [客户]),"日期",2)),</font>
- #"展开的“客户”" = Table.ExpandTableColumn(自定义1, "客户2", {"日期", "客户", "产品", "销售额"}, {"日期", "客户.1", "产品", "销售额"}),
- 删除的列 = Table.RemoveColumns(#"展开的“客户”",{"客户"}),
- 重命名的列 = Table.RenameColumns(删除的列,{{"客户.1", "客户"}}),
- 更改的类型1 = Table.TransformColumnTypes(重命名的列,{{"日期", type date}})
- in
- 更改的类型1
复制代码 期间试过用合并查询和索引,使用合并查询要避免同一个客户同一天有2条记录的情况。
数据量较大时索引速度较慢。
|