前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Excel PQ应用]服饰订单自动按照尺码和店铺级别分货到店

[Excel PQ应用]服饰订单自动按照尺码和店铺级别分货到店

作者头像
wujunmin
发布2021-09-07 17:20:27
7940
发布2021-09-07 17:20:27
举报
文章被收录于专栏:wujunminwujunmin

工厂将货品生产后,发货到零售公司物流中心,商品部/货品部制作分货单将货品按尺码分配到各个店铺,基本原则是大店/销售好的店铺得到最好的货品资源,给予最充足的货量。

已知我们有

一份订单,有各个产品的订单尺码数量。 一份店铺列表,店铺按顺序排列,越排在前面代表该店越重要,给予越多的货品支持。 一份到货分货条件,当该款货品到货12件以内时,只分到一家店铺;到货12-24件时分到2家店铺,以此类推。(该条件可按需调整)

订单

分货级别和分货基础原则

手工一款款分货效率是很低下的,15年那会我使用Excel VBA将这一过程实现自动化,90%的内容无需手工操作。现在我们切换时下流行的Power Query Excel插件试着实现该过程,简要几个公式也能实现自动分货。以下是一个粗糙的版本,后续也许会更新。

1.将订单、分货级别和分货基础原则(店铺区间)导入Power Query

导入数据

2.对订单进行分拆

分拆的步骤可直接使用交互界面,为说明前后顺序,我使用高级编辑器对关键环节添加了注释(见"//"行),按这个步骤操作即可。

代码语言:javascript
复制
let
    源 = Excel.CurrentWorkbook(){[Name="订单"]}[Content],
    //按照订单数量引入不同范围需分货到多少家店铺
    分货店铺数 = Table.AddColumn(源, "分货店铺数", each List.First(Table.SelectRows(分货店铺数区间,(x)=>x[到货数量范围]>=[订单数量])[分货店铺数])),
    删除的列 = Table.RemoveColumns(分货店铺数,{"订单数量"}),
    //逆透视列,将尺码变为竖排
    逆透视列 = Table.UnpivotOtherColumns(删除的列, {"货号", "性别", "类别", "分货店铺数"}, "属性", "值"),
    重命名列 = Table.RenameColumns(逆透视列,{{"属性", "尺码"}, {"值", "各尺码订单数量"}}),
    //将各尺码订单数量按照多少展开
    各尺码订单索引 = Table.AddColumn(重命名列, "各尺码订单索引", each {1..[各尺码订单数量]}),
    展开各尺码订单索引 = Table.ExpandListColumn(各尺码订单索引, "各尺码订单索引"),
    //按照分货店铺数量和订单数量,对每款货品每个尺码进行循环
    分货店铺索引 = Table.AddColumn(展开各尺码订单索引, "分货店铺索引", each 
        if Number.Mod([各尺码订单索引],[分货店铺数])=0 then [分货店铺数] 
        else [各尺码订单索引]-Number.RoundDown([各尺码订单索引]/[分货店铺数])*[分货店铺数]),
    //按照索引将店铺名称引到订单
    引入店铺名称 = Table.NestedJoin(分货店铺索引,{"分货店铺索引"},店铺分货级别,{"分货级别"},"店铺分货权重",JoinKind.LeftOuter),
    展开店铺 = Table.ExpandTableColumn(引入店铺名称, "店铺分货权重", {"店铺"}, {"店铺"}),
    删除过程列 = Table.RemoveColumns(展开店铺,{"各尺码订单数量", "各尺码订单索引", "分货店铺索引"}),
    //尺码变为横排
    透视尺码为横排 = Table.Pivot(删除过程列, List.Distinct(删除过程列[尺码]), "尺码", "分货店铺数", List.Count)
in
    透视尺码为横排

最后的效果如图,STY0001这个货按照条件只分给了一家店;STY0004这个货订单47件,按照条件优先分给了前4家店铺;并且A店分到的数量最多。

分货结果

前面我们讲到,这个方式比较粗糙,粗糙在哪里?

1)分货过于扁平化,A店尽管分到数量多,但是和D店区别不大。 2)没有考虑消费特性,全部按照从A店开始分。 3)没有考虑商圈问题,最大码最小码全部在最前面的店铺,理论上各商圈都有超大码超小码分布更利于销售。 4)没有考虑小店的感受,排最后的店铺可能永远也分不到新货。 5)没有考虑仓库的作用,订单不一定要全部分到店铺,也可以部分留仓。

尽管有以上种种缺陷,这个方式却也可以自动化我们的一部分工作。针对遇到的问题,可以将过程继续进行优化得到解决(比如第1,5点),也可以依据行业经验手动调整。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 wujunmin 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档