首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

93 Excel中按需求自动复制指定内容(EXPAND、REDUCE+LAMBDA)

生产计划在排程中有可能会遇到一个特别大的工单,排程的时候可能需要分拆给很多的线体,此时要么在ERP系统中把这个工单分拆,要么在线外手动分拆,ERP不分拆,也就是多条线体生产同一张工单;如一张10000的工单,分成5张,工单号一样;

此时就涉及到分拆的问题,其实分拆的难点在于按照指定需求分,分一张工单就需要重复一次,分多张就需要重复多次,类似下图:

手动录入肯定是比较慢的,如果能够用公式自动重复就非常高效了,在学习重复工单前,先学习几个关于重复的函数;

REPT

REPT这个函数比较简单,就是把将文本重复一定次数,并在一个单元格内显示,参数为:REPT(text,number_times)。这个函数优点就是简单,重复几次就录入数字就可以了,缺点就是在一个单元格内不好分拆;

EXPAND

EXPAND,这个函数是365新增函数,函数简单好学,参数是:扩张(排列,行,[列],[pad_with]),如果不理解,参考以下图片,多录入几次就明白了;

录入函数:=EXPAND(A2,,B2,A2),就可以得到分拆后重复的工单号了;函数说明:第1个参数A2是工单号,第2个参数没录入是按行填充,第3个参数B2是填充3列,第4个参数为填充内容A2工单号

此时如果想转换成列方向的话,就需要用到EXPAND列参数,因为列参数是向下的,所以无法填充公式,需要想其他办法了。

还是原来的列显示方向,我们用文本合并再分开的思路就可以把刚刚的数据转成列(垂直)显示方向,录入函数:

=TEXTSPLIT(TEXTJOIN(";",,D2:I5),,";"),结果如下图所示

REDUCE+ LAMBDA

上面的方法,还是不能实现一个公式填充完成,所以又要请出万能的自定义函数组合“REDUCE+LAMBDA”了,用这两个函数可以实现一键填充;

我们录入公式:

=REDUCE("工单号",A2:A5,LAMBDA(x,y,VSTACK(x,EXPAND(y,B2:B5,,y))))

为了下次能够快速录入,创建一个自定义函数,这个自定义函数最好全程用中文来写。创建一个名称:引用位置录入=LAMBDA(区域,重复区域,REDUCE("工单号",区域,LAMBDA(x,y,VSTACK(x,EXPAND(y,重复区域,,y)))));确定后,一个以重复命名的自定义函数建立好了;

此时录入重复就可以看到对应的参数,有两个,也就是LAMBDA函数定义的区域和重复区域两个参数;

快速自定义

用“REDUCE+LAMBDA”创建的自定义函数最不好的就是换个Excel就不能用了,只能在当前定义好名称的才能用,所以我们需要用输入法来保存;

打开输入法的自定义短语,设一个自定义短语“cf”,替代刚才的很长的“自定义函数”,输入法位置选择2,不选择1的话,是因为1是常用字;保存确定完成;

此时我们新建一个Excel工作表,按Ctrl+F3,快速的把这个自定义函数录入进去,只需要录入 “cf”就完成了长公式录入

测试一下是否成功,录入新函数:=cf(B3,A3),完成,理论上可以通过定义输入法完成非常多的自定义函数;方便大家高效办公;

我是古哥:

从事制造行业18年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230306A09IX500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券