(图片来源网络,侵删)
仓库管理中,有时候销售部门要求仓库对某些订单中的产品快递给客户此时业务部门会把需要发快递的订单明细以及快递地址和联系人给到仓库仓库按照这些信息填写,并通知快递过来取货就可以了有部分客户要求把快递内容填写到快递单的备注上面,也就是订单明细列表,包括发了几种商品,每个商品有多少数量等信息这个问题就来了,因快递公司的APP不支持列表,只能填写中文加数字的内容相当于要把清单转成一句话内容,也就是从系统中的《订单发货明细表》自动转成汇总到一个单元格内,方便直接复制文本到快递APP的备注栏上面,效果如下图所示:确定需求根据问题的描述,可以发现这又一个经典的“一维数据转二维数据“的问题,需求可以转换成下面的精准要求:需求1:订单明细表中的订单去重需求2:订单单个订单中有多少项产品?需求3:在把单个订单中的商品名称分别连接起来,中间用特定符号间隔开,标准格式显示为:“背胶砂纸400号1; 背胶砂纸600号1; 背胶砂纸800号1;”根据需求确定函数:上面的需求总结起来就是需要以下函数:去重函数:UNIUQE 订单去重统计函数:COUNTIFS 订单商品统计筛选函数:FILTER 按订单筛选出对应的商品明细和数量合并函数:TEXTJOIN;把筛选出的商品明细和数量合并在一起连接符号:“&”,商品和数量连接对应的符号“”开始写函数:订单号去重:=DROP(UNIQUE(B3:B1800),-1)函数释义:公式中包含B3到B1800单元格范围内的所有唯一值保留,空白为显示0,所以用利用 DROP函数选择这个范围,并去掉这个列表中最后一个字符,其中-1表示最后一个单元格统计商品数:=COUNTIFS(B:B,F3#)函数释义:公式中的B:B表示要统计的范围是B列的所有单元格,F3#表示统计条件是单元格值等于F3单元格中的值也就是F3#是一个动态数组,可以一次性把所有订单号统计完成有多少张订单号代表有多少个商品筛选对应商品和数量并合并:=TEXTJOIN("; ",,FILTER($C$2:$C$10000,$B$2:$B$10000=F3)&""&FILTER($D$2:$D$10000,$B$2:$B$10000=F3))函数释义:这个公式可以理解为:将符合特定条件的两列单元格的值合并成一个字符串,并用分号和空格分隔;第一个筛选:筛选出B列等于F3单元格中的值的所有单元格,并返回C列的值,也就是符合订单的商品明细第二个筛选:表示筛选出B列等于F3单元格中的值的所有单元格,并返回D列的值,也就是符合订单的商品数量;把第一个筛选和第二个筛选用连接符号“&”连接起来,中间用““号作为商品与数量的连接点,效果: “背胶砂纸400号1”用TEXTJOIN会将连接好的字符串用分号分隔,并返回到一个单元格内最后的效果如下图:转成动态数组:一键公式:相当于把公式全部合并到一个单元格了=LET(A,DROP(UNIQUE(B3:B1800),-1),B,B2:B10000,HSTACK(A,COUNTIFS(B:B,A),DROP(REDUCE("",A,LAMBDA(X,Y,VSTACK(X,TEXTJOIN("; ",,FILTER(C2:C10000,B=Y)&""&FILTER(D2:D10000,B=Y))))),1)))仅供研究学习,效果如下图:我是古哥:从事制造行业20年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验学习PMC生产计划,关注古哥计划
0 评论