Excel情报局
职场联盟Excel
大家好,今天我们来解决一位粉丝朋友的燃眉之急:同一个单元格中包含多个括号,如何将所有括号里面的内容提取出来,并将结果放到指定的单元格中?小编用了一组函数公式解决了这个问题。粉丝朋友惊呼:这可帮了我的大忙!
如下图所示:
A列内容每个单元格中包含多组括号,括号数量不固定,位置不固定。我们想要将所有括号里面的内容提取出来,并放置到B列的对应的单元格显示。
有的朋友说,用“神奇的“Ctrl+E”快捷键可以吗?答案肯定是不可以的,我想这位朋友可能是抖音看多了,太相信那些“神奇的Excel一秒钟技巧”了。由于括号数量不固定,位置不固定,影响到了“Ctrl+E”快捷键的操作效果,如下图所示,提取结果出现了预料之中的错误:
Ctrl+E不行,VBA代码太深奥,又不会,可怎么解决呢?我们可以按照下面的方法输入函数公式。
我们可以先输入TEXTAFTER函数:
=TEXTAFTER(A2,"(")
接着输入TEXTSPLIT函数:
=TEXTSPLIT(TEXTAFTER(A2,"("),"(")
TEXTSPLIT函数是用于分列或分行的函数。
函数基本参数:
TEXTSPLIT(待拆字符,[列分隔字符],[行分隔字符],[是否忽略空],[是否区分大小写],[出错时返回什么])
使用TEXTSPLIT函数对上一步TEXTAFTER的返回结果进行分列,列分隔符使用第二参数左括号“(”。
再叠加重复使用TEXTSPLIT函数:
=TEXTSPLIT(TEXTSPLIT(TEXTAFTER(A2,"("),"("),")")
使用TEXTSPLIT函数对上一步的TEXTSPLIT函数返回结果再次进行分列,列分隔符使用第二参数右括号“)”。
该步函数参数为数组溢出,因遮挡剔除原理,至此步骤为止,我们就将所有的括号里面的内容,通过分列的方式提取到了一行多列的单元格中显示。如下图所示:
所以,我们最后使用TEXTJOIN函数进行多单元格内容合并:
=TEXTJOIN(",",,TEXTSPLIT(TEXTSPLIT(TEXTAFTER(A2,"("),"("),")"))
TEXTJOIN是一个超级好用的合并类型的函数:
TEXTJOIN(连接分隔符,是否忽略空值,合并范围)
连接分隔符:多个文本用指定字符连接起来。
是否忽略空值:连接时是否忽略掉结果为空的值或单元格。
合并范围:可以是单个字符,也可以是区域或数组。
使用TEXTJOIN函数,将以上结果通过使用分隔符逗号“,”,忽略第二参数即忽略掉结果为空的值或单元格后,进行合并到一个单元格显示。
〖往期知识点精彩超链接点击阅读〗