【动态数组】通过TEXTSPLIT函数批量处理数据清洗问题

WPS函数专家
要想下班早,表格必须用的好!
大家好,我是张俊。
⭐场景
今天接到一个宝子咨询,说是领导给了从公司系统导出的数据,现在需要根据A列的数据提取出对应的省级放在B列,其他的市级放在从C列向右录入,具体数据如下图所示:
- 问题分析
首先需要根据数据进行分析,可以看出我们需要删除将“SJ1['”、“']=new Array('”、“','”和“');”替换掉,才能得到我们需要的数据,以福建省数据为例,具体如下图所所示:
我们首先想到的函数肯定是SUBSTITUTE函数来将“SJ1['”和“');”替换为空,再将“']=new Array('”和“','”替换为","来作为分隔符,最后再用TEXTSPLIT函数来按列分隔。具体公式和效果如下:
=TEXTSPLIT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"SJ1['",""),"');",""),"']=new Array('",","),"','",","),",")
📢 | 关于SUBSTITUTE函数使用方法,后期会专门出教程进行分享,大家期待一下吧~ |
看来是可以得到效果的,不过就是公式写的有点长,单说SUBSTITUTE函数就嵌套了4层,外面再次嵌套了TEXTSPLIT函数,那如果有很多种这样的呢?那岂不是又要嵌套到地老天荒、海枯石烂了?如果你也经常遇到这样的问题,那就不妨看过来吧?学会一个技巧,少走很多弯路。
此时我们有没有想过用了这么多层SUBSTITUTE函数,还需要用到TEXTSPLIT函数,有没有想过只需要TEXTSPLIT函数即可搞定呢?
- 实现效果
=TEXTSPLIT(A2,{"SJ1['","']=new Array('","','","');"},,1)
为了对函数便于理解,我特别加了颜色加以区分,具体如下:
- 公式解析
3.1 录入常量数组
如果我们有很多个需要替换的字符需要替换或拆分时,我们可以选择使用TEXTSPLIT函数,其实TEXTSPLIT函数的参数2和参数3是支持以数组形式展示的。
因此我们只需要将“SJ1['”、“']=new Array('”、“','”和“');”写成数组形式即可。
数组形态为{"","","",""},只需将各个不需要的符号写入对应的位置即可得到如下效果:
{"SJ1['","']=new Array('","','","');"}
3.2 作为分隔符拆分
最后将以上数组当做TEXTSPLIT函数的参数2按列拆分即可,具体公式和效果如下:
=TEXTSPLIT(A2,{"SJ1['","']=new Array('","','","');"})
3.3 忽略空白单元格
发现在开头和结尾有空白单元格,在前面的教程中也提及到,当分隔符在开头或结尾时,会出现空白单元格,此时我们只需要通过TEXTSPLIT函数的参数4(输入1)来忽略空白单元格,具体公式和效果如下:
=TEXTSPLIT(A2,{"SJ1['","']=new Array('","','","');"},,1)
- 方法总结
4.1 将很多个内容批量替换为空
当我们需要将很多内容批量替换为空时,我们可以尝试用TEXTSPLIT函数的参数2或参数3的数组形式拆分即可,然后用CONCAT函数连接。
4.2 将很多内容批量替换为某字符
当需要将很多内容批量替换为某字符时,我们一样可以尝试用TEXTSPLIT函数的参数2或参数3的数组形式拆分即可,然后用TEXTJOIN函数的参数1(替换的某字符)连接。
关于TEXTSPLIT函数批量处理数据清洗问题,你学会了吗?学会的话,记得点赞❤️❤️❤️并在评论区评论“我学会了!”,您的点赞❤️❤️❤️和评论是对我最大的支持!
🚩 | 练习文件:👉通过TEXTSPLIT函数处理批量处理问题👈 |
个人往期帖子合集:【帖子合集】个人往期帖子合集来了!
【动态数组】以动态数组视角学习TEXTSPLIT函数进阶用法
WPS函数专家
创作者俱乐部成员
WPS函数专家
创作者俱乐部成员
WPS函数专家
WPS函数专家
创作者俱乐部成员
WPS函数专家
创作者俱乐部成员
WPS函数专家
WPS函数专家
创作者俱乐部成员
WPS函数专家
WPS函数专家
社区优秀创作者
WPS函数专家