如何拆分文本并分类统计

例题描述和简单分析
将下面 A 列数据拆分成右边的形式,有 @符号的要加到一起。相关的数据如下:

需要统计出孔 (即 @的数据)、夹及其它的数据。

解法及简要说明
1. 在集算器中设置 demo.dfx 脚本参数:


设置参数 arg1 为 Excel中 A列数据。

2. 编写脚本 demo.dfx:

AB
1=(arg1).(~.split(",").(~.split("=")))/ 将数据按行拆分成键值结构
2>A1.run(r=[0,0,0],
~.(if(left(~(1), 1)=="@", r(1)+=int(~(2)),
if(left(~(1), 1)=="夹", r(2)+=int(~(2)),
if(left(~(1), 1)=="其", r(3)+=int(~(2)) )))), ~=r)
/ 按每行的键分类进行值的累计求和存入序列 r
3return create(孔, 夹, 其它).record(A1.conj())/ 将计算结果存入新序表返回

3.       设置参数后,调试运行一下,可看到 A1 格值:

A1Member
[[@10,5],[夹,2],[其它,2]]
[[@10,4],[开槽,1],[其它,2]]
[[@10,3],[夹,2],[开槽,2]]
[[@10,2],[@13,3],[夹,2],[其它,2]]
[[@10,1],[@14,2],[开槽,1],[其它,2]]
[[@10,6],[@14,3],[夹,2],[开槽,2]]

  执行到 A2 时,A1 格值:

A1Member
[5,2,2]
[4,0,2]
[3,2,0]
[5,2,2]
[3,0,2]
[9,2,0]

  4.      执行脚本返回结果:

A3其它
522
402
320
522
302
920

A2: 对于每行数据来说,r 为存储的记录数据,将相同键的数值进行累计求和,存入序列 r 中; 遍历所有行,计算出各个物件的数量。

5 、调用 demo.dfx 脚本:
Excel 中选择网格 B1:D7,输入公式: =esproc("demo", A2:A7),同时按 ctrl+shift+enter 执行公式,填充结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值