首页   

字符拆分与合并,学会套路很简单

Excel之家ExcelHome  · Excel  · 3 天前

正文

小伙伴们好啊,今天和大家分享几个字符拆分与合并的函数公式。

拆分字符
如下图,A列待拆分字符中,有多种类型的间隔符号,使用以下公式,可以按常量数组的形式将多种分隔符号写到一起。
=TEXTSPLIT(A2,{"+","-"})
图片
公式中的列分隔符号为{"+","-"},每一个符号都加上双引号,符号之间用半角的逗号或半角分号作为间隔,最后用一组花括号包含起来。
TEXTSPLIT将依次按花括号中不同类型的分隔符拆分到各列。

拆分后求和
如下图所示,A列是商品和金额的混合信息,希望提取出其中的金额部分,并进行求和汇总。
B2单元格输入以下公式,向下复制即可。
=SUM(1*TEXTSPLIT(A2,TEXTSPLIT(A2,ROW($1:$10)-1,".",1),,1))
图片
本例中用了两个TEXTSPLIT函数,先看这部分:
TEXTSPLIT(A2,ROW($1:$10)-1,".",1)
使用ROW($1:$10)-1部分得到的0~9的数字和小数点,对A2单元格中的内容进行拆分,第四个参数使用1,表示忽略空单元格。
这一步的作用相当于是将A2单元格中的数字和小数点都删除,仅保留文字部分,得到的结果为:
{"赵东来","沙瑞金"}
接下来再使用TEXTSPLIT函数,用前一个TEXTSPLIT部分得到文字作为间隔符,将A2内容进行拆分。
TEXTSPLIT(A2,TEXTSPLIT(A2,ROW($1:$10)-1,".",1,),,1)
这部分拆分后的结果为:
{"18","95.5"}
最后乘以1转换为数值,再用SUM函数求和。

合并内容
如下图,希望将B列的姓名,按照不同部门合并到一个单元格里。
=TEXTJOIN(",",1,IF(A$2:A$15=D2,B$2:B$15,""))
图片
公式中要合并的内容为: 
IF(A$2:A$15=D2,B$2:B$15,"")
也就是如果A$2:A$15等于D2,就返回B$2:B$15对应的内容,否则返回空文本"",结果是一个内存数组:
{"沙瑞金";"高育良";"蔡成功";"陈岩石";"";"";"";""……}
TEXTJOIN函数对IF函数得到的内存数组进行合并,第一参数指定使用间隔符号为逗号,第二参数使用1,表示忽略内存数组中的空文本。

返回间隔符号前后的内容
如下图,希望得到“调休”和逗号之间的字符,B2单元格输入以下公式,
=TEXTBEFORE(TEXTAFTER(A2,"调休"),",")
图片
TEXTAFTER可返回指定间隔符号后的内容,TEXTBEFORE则是返回指定间隔符号之前的内容。
先使用TEXTAFTER函数返回“调休”后的全部字符,再从此基础上,使用TEXTBEFORE函数返回逗号前的全部字符。

图文作者:祝洪忠


© 2024 精读
删除内容请联系邮箱 2879853325@qq.com