252 WPS新函数案例:员工姓名与工号快速分离

古哥计划
古哥计划

优秀创作者

某工厂人事专员的一个需求:在整理年度培训记录的时候,发现从培训考勤系统后台导出的员工培训记录明细表中员工和工号之间在一个单元格内,需要分别把员工姓名和工号之间分成两列,不同姓名与工号之间用逗号分离,以方便后续的进一步数据分析,希望设计一个公式模板实现一键分离;

最终效果如下图图1中所示。

图1

需求分析

根据上面的需求,可以认定这个需求是一个文本分离的需求,需要用到文本函数,分离文本的基本准则就是找规律,通过观察可以发现,不同员工的姓名和工号是用逗号“,”作为分隔符号来隔离的。而姓名与工号之间是用括号“[”来隔离的。根据这些规律,解决的思路就有了。

先用文本分列函数分列,然后在对分列后的数据进行文本截取,截取完成成后再用合并函数合并。

逻辑树如下图2所示:

图2

文本分列

文本分列的函数是WPS更新后一个关键函数:TEXTSPLIT,这个函数的功能类似操作中的数据→分列→按特定符号分列。这里的分列符号就是逗号。录入函数

C3=TEXTSPLIT(B3,,",")

函数释义:

把B3单元格里面的内容按垂直方向分列,分列的条件是逗号;

效果如下图图3所示:

图3

文本截取

通过辅助列把B3单元格分列成多个单元格后,可以发现提取员工姓名就是要把符号“[”前面的内容提取出来,此时上场的就是函数TEXTBEFORE,这个函数就是提取指定条件前面的字符。录入函数:

D3=TEXTBEFORE(TEXTSPLIT(B3,,","),"[")

函数释义:

把符号“[”前面的内容提取出来。

完成后如下图4所示:

图4

合并文本

上面用了二处辅助列,目的就是为了能够分离员工姓名。现在员工姓名分离出来后,只需要用合并文本的函数TEXTJION就可以完成最终合并。

录入函数:

=TEXTJOIN(",",,TEXTBEFORE(TEXTSPLIT(B3,,","),"["))

函数释义:

把多个单元格里面的内容合并成一个单元格,不同单元格之间用符号逗号进行分隔。

合并完成后如下图图5所示;

图5

提取工号

姓名可以提取出来的话,工号就可以参考提取姓名的思路,写出类似的公式。

文本分列:

=TEXTSPLIT(B3,,",")

文本截取:

=TEXTAFTER(TEXTSPLIT(B3,,","),"[")

文本替换:

=SUBSTITUTE(TEXTAFTER(TEXTSPLIT(B3,,","),"["),"]","")

文本合并:

=TEXTJOIN(",",,SUBSTITUTE(TEXTAFTER(TEXTSPLIT(B3,,","),"["),"]",""))

合并完成后如下图图6所示;

图6

知识点:

分列函数:TEXTSPLIT,把一个单元格按条件分拆成一个或多个单元格;

提取函数:TEXTAFTER,在指定单元格内,按条件提取这个条件的数据;TEXTBEFORE,指定单元格内,按条件提取这个条件的数据

合并函数:TEXTJOIN,把多个单元格内容,合并成一个单元格(支持指定符号分隔)

替换函数:SUBSTITUTE,把指定内容替换成想要的内容。

这些函数也不用特别记参数,写一下就明白了。

参数如下图图7所示:

图7

我是古哥:

从事制造行本业20年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!

安徽省
浏览 611
4
7
分享
7 +1
5
4 +1
全部评论 5
 
幸福春
收藏慢慢学
· 山东省
回复
 
亂雲飛渡
学习了
· 广东省
回复
古哥计划
古哥计划

优秀创作者

感谢您的支持,您的支持是我坚持创作的动力。
· 浙江省
1
回复
 
Mr Chen
Mr Chen

创作者俱乐部成员

学习
· 甘肃省
回复
古哥计划
古哥计划

优秀创作者

感谢您的支持,您的支持是我坚持创作的动力。
· 浙江省
回复