企业网站制作规划织梦素材网站模板
news/
2025/10/8 22:20:54/
文章来源:
企业网站制作规划,织梦素材网站模板,深圳网站制作的公司嘉兴,凤翔网站制作用 Excel 处理数据时#xff0c;有时需要对字符串进行拆分。对于比较简单的拆分#xff0c;使用 Excel 函数可以顺利完成#xff0c;但碰到一些特殊需求#xff0c;或者拆分的规则比较复杂时#xff0c;则很难用 Excel 实现了。这里列出一些拆分需求示例#xff0c;分析拆…用 Excel 处理数据时有时需要对字符串进行拆分。对于比较简单的拆分使用 Excel 函数可以顺利完成但碰到一些特殊需求或者拆分的规则比较复杂时则很难用 Excel 实现了。这里列出一些拆分需求示例分析拆分难点并提供 SPL 解决代码。SPL 是专业计算引擎 esProc 使用的语言用于处理结构化数据运算非常方便对于字符串拆分的运算也很简单。一、规则单词拆分这里有一份车间采购产品清单清单的每一项包含了需要采购的品牌以及产品型号。现在想要把每一项的品牌以及型号拆分后单独列到后面。文件 productlist.xlsx 中数据如下期望结果使用 Excel 来处理这类拆分时可以使用数据的分列但是分列有个缺点其实也算不上缺点只是针对这个只想拆出品牌的需求来说单词被过渡拆分了。比如后面的型号也会被拆分到多个列又需要重新合并过程有点得不偿失。不过 Excel 还有一个快速填充可以根据给定的参考值比如第一行给定 PANASONIC便可使用类似规则快速填充后面行的拆分然后再用 Mid 函数间接算出型号的字符串部分过程依然繁琐。使用 SPL 可以直接读取 Excel 文件对于实时分析操作也可以将 Excel 中的数据复制到剪贴板然后在 SPL 里面使用 clipboard 函数直接从剪贴板获取数据数据整理完后再将结果放入剪贴板然后在 Excel 中粘贴结果这样便可将 Excel 的分析操作跟 SPL 的计算无缝对接起来方便而又高效。SPL 拆分代码AB1clipboard().importi()/从剪贴板导入产品清单2A1.(~.split1( ))/从第一个空格处将产品清单分离为两部分产生一个序列的序列3A2.concatn(t)/拼接为子序列的成员用 Tab 分隔序列的成员之间用回车分隔的二维表串4clipboard(A3)/将串值放置到剪贴板代码执行完成后只需在B1 格粘贴便可得到期望结果。二、数字分离如下为一些数字跟字符混合在一起的数据现在需要将数字和字符分离开。文件 numbers.xlsx 中数据如下期望结果如果是光分离数字出来仍然可以使用给定首行参考值然后采用快速填充便可以将所有数字分离出来。但是要将剩余的字符再分离出来Excel 没有合适的办法因为有些数字是跟字符交叉混合在一起没法用 Mid 等函数拆分。只能采用 VBA 写代码逐字循环判断字符类型挨个分离过程依然麻烦。SPL 可以直接将串分离成单字符并根据类型划分AB1clipboard().splitn()/将剪贴板数据按回车拆分为成员然后将成员再逐字拆分2A1.(~.aligna([true,false],isdigit(~)).(~.concat()))/每一项字符序列用是否为数字分成两组继而再拼成串从而分离出数字和字符3A2.concatn(t)/将两层序列分别用 Tab 和回车拼为二维表式的大串4clipboard(A3)/将大串放置到剪贴板三、日期分离下面为一些包含日期的句子或段落现在想要把句子里面所有的日期分离出来一行中包含多个日期时用分号分开。文件 multidates.xlsx 中数据如下期望结果要将句子里面的日期分离出来Excel 没有相应的办法尤其像这种一个句子里面有不定个数的日期。如果是固定位置或长度的日期格式才可能用截取固定长度或者使用快速填充能够办到。对于上述多个日期的分离只能写 VBA 代码再用正则表达式去匹配解析完成这种需求对人员要求较高且实现过程繁琐。SPL 直接用空格分割串为单词序列然后按格式转换日期类型的数据AB1clipboard().splitn(“ “)/将剪贴板数据按回车拆分成员然后用空格将每一成员拆分为单词序列2A1.(~. (date(~,dd.MM.yy)))/将单词序列的成员按照指定格式转换为日期类型的数据3A2.(~.select(ifdate(~)))/选出序列中的日期类型的值4clipboard(A3.concatn(“;”))/将日期串序列结果拼接为二维表串并放置到剪贴板执行完上述代码后直接在源表中的B1 格执行粘贴即可得到期望结果。四、按字符拆分如下表为一列长度不等的数字现在需要将数字逐字拆分成为单独的列。文件 number.xlsx 的数据期望结果使用 Excel 拆分上述数字时首先想到的是使用分列但是像这种逐字拆分分列时只能一个一个指定分隔位数字比较长时就要多次重复设置操作多而麻烦。其次是使用函数比如可以在 B1 写入 MID($A1,COLUMN(A1),1)然后拖拽鼠标进行行填充以及列填充但这种操作不好掌握最大列数篇幅大时操作也不方便。SPL 可以直接按字符拆分AB1clipboard().splitn()/将剪贴板数据按回车拆分成员然后每个成员再缺省拆分为单字符序列2A1.concatn(t)/将拆分后的两层序列拼成串式二维表3clipboard(A2)/将结果放置到剪贴板上述代码执行完成后同样在 B1 处粘贴拆分后的数据即可。五、属性表和文件名拆分如下数据为一段日志描述文件结构相对复杂其中包含类似于属性表的分节描述。现在想将属性描述中的 PublicKeyToken 以及文件名分离出来。文件 log.xlsx 的数据期望结果这是一个综合串的分离第一层为用逗号分隔的描述串然后第二项类似于属性分节串的描述。所以使用 Excel 时需要多次分列以及多次快速填充方可完成期望结果。同样是步骤多且需要给定参考值来快速填充过程繁琐。SPL 提供了函数直接对属性串取值以及对文件名的不同部分拆分AB1clipboard().splitnc()/将剪贴板数据用回车拆分成员然后以逗号拆分子成员序列2A1.([replace(~(2),,).property(PublicKeyToken),filename(replace(~(3),,))])/去掉两端引号后用属性 property 函数从第 2 项获取 PublicKeyToken 的值再用 filename 函数拆分出第 3 项中的文件名再将这两个值构成序列3clipboard(A2.concatn(t))/将结果拼为大串放置到剪贴板
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/932002.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!