如何利用有规则的字串将一行扩展成多行

某生产日报表如下:

现根据日报统计,目标结果如下:

难点分析:

本例中要将“不良分类(AC 列)”的数据拆分到多行多列中,如日报第一条数据:

拆分后要形成 3 条记录,其中前两条:

代码表为:

第三条记录形成规则为日报中 W 列(如下图)不为空时新增一条记录

其他还有若干要求,具体查看前面截图中的“统计要求”。

使用集算器实现步骤:

1.     安装运行集算器

可去润乾官网下载职场版,同时下载一个免费授权就够了,首次运行时会提示加载。

2.     编写脚本

脚本列出来看下:

ABCD
1=file("44/ 统计表实现.xls").xlsimport@t(;,2:).select(工单号码)=file("44/ 统计表实现.xls").xlsimport@t(;"不良代码",2:)=create(行号, 生产订单, 作业号, 良品, 废品, 废品原因, 作业类型 1, 作业时间 2, 单位 2, 作业时间 3, 单位 3, 确认内文)
2for A1if a=A2. 不良分类=a.split()=C2.group@o(isdigit (~)).(~.concat())
3for D2.group((#-1)\2)=B1.select@1(原因说明 ==C3(1)). 代码
4>C1.insert(0,null,A2. 工单号码,null,null,C3(2),if(D3,D3,C3(1)),null,if(#C3==1,A2. 喷油机器工时),null,if(A2. 是否为待返工单!="是" && #C3==1,A2. 生产工时),null,null)
5if A2._23>C1.insert(0,null,A2. 工单号码,null,null,null,null,null,null,null,null,null,A2. 来料编号 +"报废,"+A2._23)
6=file("44 结果表.xls").xlsexport@t(C1)

A1 和 A2 分别读入日报和不良代码数据,A3 创建空结果表,下面计算的结果会插入 A3 中

A2 开始循环日报数据,当不良分类不为空时(B2),将其拆分成单个字符(C2)

再将其组合成汉字和数字的组合(D2),如下

C3 先将上面的结果拼成两两一组的形式,并循环准备生成新纪录

D3 表达式根据代码表查找对应不良分类代码

D4 向结果表中插入数据

B5 和 C5 处理另外一个条件(W 列不为空时),生成新记录

A6 将结果表写出到 Excel 中

3.     按 F9 运行脚本,可以看到目标结果表生成了。

数据与例子.zip

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值