运营同事每天会下载订单表格,里面包含前30天的所有订单数据,并且把每个文档放在一个文件夹里面,我需要去重所有订单并通过订单入库的日期去提取最新的状态(判断是退款还是取消,还是完成了订单);
我现在是用DAX函数解决,创建一个中间表来实现的:
所有文档合并后得到一个数量庞大的表,再新建列判断这个订单是不是最新的入库日期:
筛选最新订单入库日期 =
COUNTROWS(
FILTER('订单数据',
'订单数据'[商品ID] = EARLIER('订单数据'[商品ID])&&
'订单数据'[淘宝订单编号] =EARLIER('订单数据'[淘宝订单编号])&&
'订单数据'[订单入库日期]>EARLIER('订单数据'[订单入库日期])
)
)
再通过筛选得到去重并且是最新状态的订单表:
目标订单数据 = FILTER('订单数据',ISBLANK('订单数据'[筛选最新订单入库日期]))
这种方法有个中间表,而且订单多了,这个pbix文档就会很大,有点麻烦,所以就想看能不能通过Power Query解决:
我试过加一个筛选步骤:
筛选最新状态 =
Table.SelectRows(
提取订单入库日期3,
each [订单入库日期] =
List.Max(
Table.SelectRows( 提取订单入库日期3 , (x) => x[淘宝订单编号] = [淘宝订单编号] and x[商品ID] = [商品ID])[订单入库日期]
)
)
但是这个加载时间太久了,就想问问各位大佬有没有更高效简洁的方法?
示例文档 ↓
链接:https://pan.baidu.com/s/1XOWqjdQKYJfT64iAllhFqA
提取码:7kfh