15.7 拆开不同类型的字符

 

有考勤数据如下,某一天员工们有多种考勤现象,如 A 表示迟到,A 后面的数字表示迟到时间,B 表示早退,B 后面的数字表示早退时间,C 表示请假,C 后面的数字表示请假时间,以此类推。现在想要对这种情况进行汇总,分别统计每种字母后面的数字和,填在图中的黑框区域。

imagepng

在 B4 写入代码:

A
1 =‘A1:G1’.conj()
2 =create(Type,Value)
3 =A1.(~.words@wp().run(if(#%2==1,A2.record([~,number(~[1])]))))
4 =A2.groups(Type;sum(Value):Total)

A2 构建有 Type 和 Value 两列的序表
A3 循环每个单元格串,将串拆分成单词,选项 @w 表示拆出所有字符,汉字或符号拆成单个字符,英文或数字拆成单词;选项 p 表示数字开头部分将根据数据类型识别为数值或日期,拆成一个整体。拆分以后,循环拆分出的序列,如果当前成员序号是单数,则取当前成员和它的下一个成员转成数值后构成一行数据保存到 A2 中
A4 对 A2 按 Type 分组,统计 Value 之和


帮你早下班 - esProc 桌面版与 Excel 数据处理
15.6 解析日期
15.8 拆出单词