前些时间,有道友在群里提出了,如何在EXCEL中实现类简道云中的SPLIT() 功能?当然,在导入的时候直接按分割符处理这样会更便捷,不过,在实际中,去让别人掌握,可能学习成本会高,就在尝试如何用公式来实现。
后续,在与一餐饮公司沟通中,遇到了外卖订单分派问题,订单是从第三方平台导出,客户的部分有效信息是拼接在同一个字段中,如果想借用简道云实现自动分派订单,就需要把信息批量导入,然后用数据工厂进行自动化处理,前提是需要把有效信息先从字段中分别解析出来。
于此整理一下,以便相互交流学习。
关于SPLIT() 函数
SPLIT() 原本只是一个将文本按指定字符串分割成数组的函数,在广大道友的广泛实践下应用场景是越来越广,从下拉框到子表单,从辅助计数到信息解析,都能见到它的身影。
在数据工厂中,却无SPLIT() ,原本在表单中很容易解决的问题,到了这里却变的有些麻烦,常见的如处理批量处理导入的格式化数据。
比如下面一组数据,在同一个字段中,纯文本格式:
姓名;年龄;性别;联系方式:身份证号;联系地址;兴趣爱好
如果想要导入简道云,就只能先在EXCEL中预处理一下?或者直接在简道云中再输入一遍?
日常中,通过其它平台导出的数据,可能也会遇到类似的情形,数据会拼接在一起,放在了同一个字段里,某些数据的长度还非固定,就像上面提到的联系地址与兴趣爱好。
功能测试链接
https://tnvew1vqtq.jiandaoyun.com/f/627e598481f76300072d1ffb
分割公式原型
原字段集:
第1个字段;第2个字段;第N个字段;最后1个字段
公式原理:
基于前面已解析出的字段的长度来确定本次解析的内容
辅助字段:
CONCATENATE(原字段集,分割符)
公式原型:
LEFT(RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(前面所有字段))-前面所有字段个数*LEN(分割符)),SEARCH(分割符,RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(前面所有字段))-前面所有字段个数*LEN(分割符)))-1)
表单相关设置
数据工厂相关设置
辅助字段 公式:
CONCATENATE(原字段集,分割符)
第1个字段 公式:
LEFT(RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段))-1*LEN(分割符)),SEARCH(分割符,RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段))-1*LEN(分割符)))-1)
第2个字段 公式:
LEFT(RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段))-1*LEN(分割符)),SEARCH(分割符,RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段))-1*LEN(分割符)))-1)
第3个字段 公式:
LEFT(RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段,第2个字段))-2*LEN(分割符)),SEARCH(分割符,RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段,第2个字段))-2*LEN(分割符)))-1)
第4个字段 公式:
LEFT(RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段,第2个字段,第3个字段))-3*LEN(分割符)),SEARCH(分割符,RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段,第2个字段,第3个字段))-3*LEN(分割符)))-1)
第5个字段 公式:
在进行编辑时,系统提醒“公式嵌套层级超出限制”。
本次总结:
在刚开始准备写本内容时,公式原型还是第一张图中所示,第1个字段与最后1个字段都需要再分别处理一下,后来再想,可否再统一一下,便就有了最后的原型;倒是觉得多点几下换个参数,要比多掌握两个公式,学习成本会更低一些;因现在,尚未遇到再在EXCEl中用这个功能,公式便就没有再更新,结合一下,应该是也可以做到,一个公式搞定,多个字段仅需继续向右拉公式即可。
更多内容:
更多沟通交流可添加微信(zmlnow)
添加时请备注:简道云
都看到这里了
如果您觉得有用
赞一个呗
赏一个呗
偶会更有动力哈 |