【WPS表格案例】数据按照字符分离的一种思路

刘航
刘航

创作者俱乐部成员

📢

大家好!今天是2月的第一天,预计除夕前还会更新一两篇帖子,然后就进入春节八天假期模式啦,明天和后天分别是北方小年和南方小年,在这里提前祝大家小年快乐!

这一次给大家带来的案例其实是老生常谈的内容了。有这样一组数据,它是由品类和规格组成的连续的字符串,现在我想要在这个连续的字符串中分别提取品类和规格的信息,那么该如何进行操作呢?相信大家内心里已经有很多种方法来实现这个功能了,本篇文章使用了最近更新的函数,希望能够给大家带来一些启发和思考~

  1. 案例介绍

有这样的一组数据,A列是由品类和规格组成的连续的字符串,现在我们需要分别提取出品类、规格的信息,将其放在B列和C列对应的位置,我们该如何实现呢?相信大家心里已经有很多种想法了,本文给大家提供一种使用最近更新的动态数组函数的解决方法,供大家学习参考~

品类、规格提取

  1. 解决方案

先告诉大家我们使用的主要函数为:MID、LET、HSTACK、TEXTSPLIT函数。

大家可能对LET函数还不是那么熟悉,先给大家简要介绍一下LET函数是什么,以及LET函数中各个参数的含义。LET函数可以用来存储某个函数运算的结果,然后将这个结果以简洁的形式应用到其他函数的表达式中,达到简化运算、提升效率、便于阅读的目的。

📌

LET函数的语法:

LET函数语法

参数解释:

【名称1】要分配的第一个名称,名称必须以字母开头,不能是公式的输出结果,也不能与范围语法冲突;

【名称值1】分配给名称1的值;

【计算或名称2】可以选择下面任意一项:

  • 使用包含自定义名称的函数运算;

  • 要分配的第二个名称,如果指定名称,则后面的可选参数将变为必填参数。

一个简单的例子

💡

=LET(x,1,x+1)

这个结果将1赋值给了x这个名称,然后执行运算x+1,最后得到的结果为2.

有了前置知识之后,我们就可以利用这些已知的内容来解决问题了。

我们点击B2单元格,看一下函数表达式:

💡

=LET(t,MID(A2,1,MIN(IFERROR(FIND(SEQUENCE(10)-1,A2),99))-1),HSTACK(t,TEXTSPLIT(A2,t,,TRUE)))

B2单元格对应的表达式

这个表达式乍一看稍微长了一点,但实际上非常好理解。我们用逐层深入的方式为大家讲清楚。

  1. 首先我们令【名称1】为t,然后我们将MID函数的运算结果赋给t,这样在【计算】部分,我们就可以用字母t来指代MID函数的运算结果,简化我们的函数表达式。

  1. 接下来,我们看一下MID函数执行了怎么样的运算:

MID函数的运算结果

我们利用MID函数来提取品类的字符,【要提取的字符串】填写A2单元格,提取字符的个数是1,字符个数中的表达式的基本思想是,首先利用FIND函数寻找A2单元格中所有的数字(0~9)的位置,如果找到了,则返回数字所在的位置,如果没找到,则返回#VALUE!错误。为了避免错误对计算的影响,我们利用IFERROR函数将错误值调整为一个较大的数字,在这里我使用了99,只要数字相对提取的内容来说足够大即可。此时我们会得到一个记录着数字位置和99的数组:

IFERROR函数的执行结果(A2单元格)

接下来使用MIN函数,提取出这个数组中的最小值,也就是A列单元格内容中第一次出现数字的位置。用A2单元格可能看不出来,我们看一下A3单元格的执行结果:

IFERROR函数的执行结果(A3单元格)

此时我们发现,函数找到了0的位置和5的位置。A3单元格中第一个出现的数字为5,在数组的运算结果中对应的是4,那么我们利用MIN函数找这个数组的最小值,然后将这个最小值减1,即可得到需要提取的字符个数,此时就可以将【品类】一列的内容提取出来了。

我们在第1步中将MID函数运算的结果命名为t,此时字母t指代MID函数的一长串表达式,我们在【计算】过程中可以直接利用t来参与运算,起到简化运算的作用。

  1. 我们既然把【品类】提取出来了,那么后面的规格提取方式就有很多了。在这里我们利用一下之前的字母t,结合TEXTSPLIT函数将其分离出来。以A2单元格为例,TEXTSPLIT函数的第一个参数为A2单元格,第二个参数【按列拆分】直接填写t即可,我们直接利用B列生成的结果作为分割依据,这样就可以把文字之后的【规格】分离出来了,第三个参数可以空着,为了避免空单元格出现,我们将【是否忽略空单元格】填写TRUE或者1,这样即可得到分离出来的规格。

TEXTSPLIT函数的运算结果

有些人可能会疑惑,为什么图片里的MID函数部分没有用t指代,因为刚才的自定义名称只能作用在LET函数里面,一旦脱离了LET函数,是起不到指代作用的。

  1. 最后利用HSTACK函数将t和TEXTSPLIT函数的结果连接在一起,即可得到A2单元格的分离结果,这时我们点击B2单元格,双击右下角的【填充柄】即可完成其他单元格的填写。

  1. 总结

这个案例其实是为了利用动态数组的新函数,刻意想出来的一种解决办法。事实上,如果有更简洁的方法,当然可以在这里使用,毕竟不管黑猫白猫,只要能抓到老鼠就是好猫嘛。如果大家有更简单的解决办法,欢迎大家随时在评论区留言哦!


练习文档下载

【金山文档】 WPS发帖-数据分离提取新思路-240201

下载方法:点击上方链接,然后点击左上角的菜单栏,点击【下载】即可学习使用。

练习文档下载方式


如果大家在阅读时有所收获,那么大家可以点击小红心❤️和收藏~

如果大家也有自己的头脑风暴,那么不要吝啬自己的评论💬和转发哦~

WPS表格系列文章指路:

黑龙江省
浏览 4677
收藏
22
分享
22 +1
13
+1
全部评论 13
 
sunny
打卡
· 天津
回复
 
uibpqds
大神
· 河南省
回复
 
小落
打卡
· 安徽省
回复
 
繁樱·修容
厉害
· 湖南省
回复
 
wAT222
打卡
· 湖北省
回复
 
li zhou
打卡
· 北京
回复
 
wAT222
打卡
· 湖北省
回复
 
哥玉恒
打卡
· 湖南省
回复
 
李思炜
打卡
· 河北省
回复
 
洋
学习学习
· 广东省
回复
 
亂雲飛渡
亂雲飛渡

WPS寻令官

学习
· 广东省
回复
 
星辰
还可以考enb减len确定位置
· 江西省
1
回复
刘航
刘航

创作者俱乐部成员

对的,只要能解决问题就是好办法😁
· 中国
回复