如何将字符串按类型拆开再统计
例题描述
在 Excel 中有一行数据,为括号和逗号以及数字等混合在一起的字符串,如下图所示:
现在需要先将里面的所有数值拆分出来。然后统计每个数值前面有多少左括号 (‘(‘),以及有多少连接符 (‘-‘),比如其中的数值 1,共有 5 个左括号,1 个连字符。期望的结果如下:
实现步骤
1. 运行集算器,新建一个程序网格
可去润乾官网下载职场版,同时下载一个免费授权就够了,首次运行时会提示加载。
2. 用 Excel 打开需要计算的文件,比如上例。
3. 选中格子 A1,然后按 Ctrl+C 复制文本。
4. 切换回集算器,也选中格子 A1,然后按 Ctrl+V 粘贴数据。粘贴数据后的网格如下:
5. 然后编写处理代码,示例如下:
下面列出代码,方便看得更清晰,并逐行解释一下代码的含义:
A |
B |
|
1 |
……(从 Excel 粘贴的数据 ) |
|
2 |
=A1.words@d() |
|
3 |
=A1.words@w() |
|
4 |
=A2.new(~:Number,A3.pos(~):Index) |
|
5 |
=A4.derive(A3.count(#<Index && ~=="("):LeftBrackets) |
|
6 |
=A5.derive(A3.count(#<Index && ~=="-"):Hyphens) |
|
7 |
=A6.new(Number,LeftBrackets,Hyphens) |
A2 仅拆出 A1 串中的所有数值。
A3 拆出 A1 串中的所有类型字串。
A4 将所有 A2 中的数值,从全部字串 A3 中找到索引号,并创建一个新的序表。
A5 计算出每一数值前有多少左括号,产生新列。
A6 计算出每一数值前有多少连字符,产生新列。
A7 去掉表中的索引列,得到计算结果表。
6. 运行代码,执行完成后,点中 A7 格子,从右侧可以看到最终的计算结果:
7. 然后单击上图圆圈所示图标,将结果复制到剪贴板。
8. 回到 Excel 文件编辑界面,选中 C2 格子,粘贴并设置上标题即可。
【附件】 data.zip
英文版