Excel情报局
职场联盟Excel
生产挖掘分享Excel基础技能
Excel爱好者大本营
用1%的Excel基础搞定99%的职场问题
做一个超级实用的Excel公众号
Excel是门手艺玩转需要勇气
数万Excel爱好者聚集地
SUPER EXCEL MAN
1
职场实例
小伙伴们大家好,今天我们来解决一个后台粉丝的职场Excel办公问题求助,这个小伙伴想要解决的问题是:将单元格内的字符串,实现每隔1个字符加空格,或者是实现每隔2个字符加空格的效果。我们用一个简单的例子来展示一下原始数据及效果数据。
如下图所示:
A列为要操作的原始数据,为一串数字字符,现在我们想要每一个数字之间添加空格,形成C2单元格的效果;或者是每两个数字之间添加空格,形成C3单元格的效果。
解决这个问题,小编推荐大家使用函数的方法可以快速的完成相应的操作。总体思路是:
使用MID+ROW函数依次分别提取单元格中的每个数字,以数组的方式存储,然后借助TEXTJOIN函数用空格作为分隔符将其合并连接起来即可。
下面我们就来一步一步的说一下具体的原理及过程。
2
解题思路
TEXTJOIN函数,是一个强大的合并文本函数,通过分隔符,连接所有符合条件的单元格内容和区域。
函数参数说明:
TEXTJOIN(分隔符,忽略空白单元格,字符串1,……)
参数很简单,用自定义的分隔符,忽略空白单元格后,将字符串1,字符串2......等合并起来。
比如我们在B2单元格输入函数公式:
=TEXTJOIN(" ",TRUE,A2:A9)
可以将A2:A9区域中所有的单元格中的数字,通过分隔符空格(注意:引号之间加空格代表以空格作为分隔符),忽略空白单元格后将其合并连接起来。
但是我们发现TEXTJOIN函数合并的是A2:A9数据区域中所有单元格的内容。而我们今天要解决的问题,其中要合并的所有数据都在一个单元格内,那这可怎么办呢?
其实TEXTJOIN函数的第3参数可以使用数组的思维,利用MID函数依次将单元格中的每个数字提取出来1次,然后再用分隔符将其合并起来。
MID函数可以从文本字符串的指定位置开始,根据字符数返回指定的字符串(所有字符的字符个数为1)。
函数参数说明:
=MID(字符串,开始位置,字符个数)
函数很简单,从字符串的某个起始位置开始,截取N个字符长度。
比如说我们要利用MID函数提取单元格字符串中的第1个数字9,可以在B2单元格输入函数公式:
=MID(A2,1,1)
但是困难又来了,MID函数在这里只能单次提取某个数字,那么如何依次将单元格中的每个数字分别提取出来1次呢?在这里我们要借助ROW函数,通过批量获取行号的方式产生结果作为MID函数的第2参数,实现依次分别提取。
我们在B2单元格继续修改函数公式为:
=MID(A2,ROW(1:10),1)
ROW(1:10)会依次分别返回1~10行的所有行号,用数组的方式存储显示为:
{1;2;3;4;5;6;7;8;9;10}
注意ROW函数的参数最大行号必须大于等于单元格中的字符数量。
MID(A2,ROW(1:10),1)
会分别提取A2单元格字符串中,依次从起始位置第1个至第10个字符位置处开始,分别提取1个字符,用数组的方式存储显示为:
{"9";"8";"2";"6";"7";"8";"5";"6";"";""}
最后我们通过TEXTJOIN函数用空格作为分隔符,将数组中
{"9";"8";"2";"6";"7";"8";"5";"6";"";""}的每个元素合并起来即可。
我们继续完善B2单元格中的公式为:
=TEXTJOIN(" ",TRUE,MID(A2,ROW(1:10),1))
最后按Ctrl+Shift+回车键结束公式。可实现将单元格内的字符串,每隔1个字符加空格。
如果我们想要实现将单元格内的字符串每隔2个字符加空格的效果,只需要从单元格内的第1个字符处、第3个字符处、第5个字符处、第7个字符处开始分别提取2个字符,最后再用TEXTJOIN函数将其合并连接起来即可。
我们只需要将ROW(1:10)整体乘2减1即ROW(1:10)*2-1,可得到下面的数组结果:
{1;3;5;7;9;11;13;15;17;19}
我们继续修改B2单元格中的公式为:
=TEXTJOIN(" ",TRUE,MID(A2,ROW(1:10)*2-1,2))
最后按Ctrl+Shift+回车键结束公式。可实现将单元格内的字符串,每隔2个字符加空格。
回顾关键内容,善用图片表达,学会建立联系,拓展深度广度,浓缩关键概念,应用到行动中,善于归纳总结,尝试进行分享。