用excel连接字符串,是我们在日常工作中,比较常用的技巧。相信大家使用最多的连接方式就是“&”。但其实,在excel中连接字符串的方法有很多,并且,看似不怎么起眼的连接字符串在某些特定的场合却有着神奇的妙用。是不是很好奇呢?赶紧跟着作者E图表述的步伐,来看看吧!
【前言】
在使用EXCEL的实际应用中,我们经常会为了统计方便,把数据元素分的相对详细一些,那么统计的维度也就会多一些。同样的,有的时候我们也需要把拆分的很详细的内容,再合并成一个内容放在一个单元格中,有可能是为了引用,也有可能是为了标识或者阅读。举一个常见小例子——比如说《日数据汇报》。
为了统计方便,我们一定会做成1:2行的内容;可是如果领导需要我们做汇报,建议还是制作成5:8行的方式,这样可读性更高。
【正文】
为了更加便捷的使用EXCEL处理这类问题,EXCEL给我们准备了很多的方法——&、CONCATENATE、PHONETIC函数来处理,也会有一些“外力”的方式来解决。今天我们就用同一个模拟数据来给大家分别地介绍,希望能够让同学们在遇到类似的问题时,可以不至于手忙脚乱。
【数据源】
数据源处理需求:连接每个字段的值,形成新的字符串填入H列。
我们的模拟数据,采用了“纯数字”的格式,为了便于字符串连接的通用性,我们也使用了“一位数字”的方式,大家可以把其中的某个数字理解为需要连接的字符串亦可,看下面内容之前,先想想我们会采用什么方式解决。带着思考学习,将对于同学们吸收知识和灵活应用函数大有裨益。
【解法】
方法一
I2单元格函数:
=A2&B2&C2&D2&E2&F2&G2
这个应该是同学们使用最多的连接字符串的方式了,没有什么好多介绍的。
方法二
I2单元格函数:
=CONCATENATE(A2,B2,C2,D2,E2,F2,G2)
CONCATENATE函数最多可以连接255个参数,总字符最大不得超过8192个。在EXCEL365版本中,有几个新的函数,其中CONCAT函数算是CONCATENATE函数的升级版了,但是因为高版本的EXCEL还不是那么普及,我们就不说这些没法让大家都测试的内容了。
另外,很多人都说EXCEL2016版本有这几个新增的函数TEXTJOIN、CONCAT、IFS、DATESTRING、NUMBERSTRING、IFS、MINIFS、MAXIFS,但是据作者E图表述所知,不是所有的EXCEL2016版本都有这几个函数。据说在EXCEL2016版本测试的时候是有这几个函数的,但出了EXCEL365版本之后,就在EXCEL2016中取消了。不得而知吧,如果大家有条件的话,还是建议使用高版本的EXCEL,可以尝试很多新功能。
方法三
I2单元格函数:
{=SUM(A2:G2*10^(COUNTA(A2:G2)-COLUMN(A:G)))}
这是一个数组函数,需要在输入完函数的时候,以“CTRL+SHIFT+ENTER”三键结束函数录入,而且只适用于单元格中是一位数字的数据源。
函数解析:
这个函数利用了数学思维,以第一行的数据为例,思路如下表:
那么我们看看每一位上对应的“0”有什么规律,我们的函数是不是很完美的达到了我的要求:
由上表我们就可以看出COUNTA(A2:G2)-COLUMN(A:G)这部分函数,可以帮我们计算出每一位上会有几个0,在用10^(^是乘幂的意思,相当于POWER函数的用法)确定每一个字段中的数字是哪位数。如10^6 ,即10的6次方,就等于1000000,整体的函数如下表所列:
字段名 |
对应值 |
乘以对应位数 |
对应乘积 |
字段1 |
7 |
1000000 |
7000000 |
字段2 |
8 |
100000 |
800000 |
字段3 |
6 |
10000 |
60000 |
字段4 |
4 |
1000 |
4000 |
字段5 |
0 |
100 |
000 |
字段6 |
4 |
10 |
40 |
字段7 |
4 |
1 |
4 |
再把对应的乘积相加是不是就是我们的结果了?在这里要给同学们一个建议:如果想学好数组函数,就一定要提高“逻辑思维”的能力,上面的这三张表就是我们数组函数的计算过程,我们编写这个函数的过程,基本就是以这个思路,再选择相对应的函数来编辑的。也就是说能够允许我们没有计算机运行的速度,但是一定要有和计算机一样的运行思路。
方法四
巧借其他程序来解决。
为了EXCEL函数“小白”们日常也有好的方法操作这类问题,作者E图表述也给你们总结出这个方法,纯操作,但是也是“秒杀”式的得到结果,希望能帮到不同程度的同学是作者的初心。
方法五
前面说了这么多方法,但是肯定有人会说“作者漏了一个函数”。
是的,对于连接字符串这类问题,确实还有一个函数可以使用——PHONETIC函数。还记得我们开篇说的这个数据源的问题吗?我们用的是“数值格式的数字”,对于这个格式的数据,PHONETIC函数是不能够连接的。那么这道题就不能用PHONETIC函数了吗?当然可以用啦。
同学们看明白了吗?当我们将单元格格式设置为文本之后,再次输入数字,PHONETIC函数就可以连接这些内容了。但一个一个的输入,确实很累,这时候我们可以选中源数据区域中的某列数据,使用“分列”功能,将数据逐列转换为文本,那么这个题就解决了。
【应用】
作者E图表述所作的一切EXCEL教程,都是本着一个宗旨:不做通用基础教程,不做没有实际意义的教程,力求“简单暴力”的解决同学们工作中的问题。所以我认为:没有实际案例的教程都是耍流氓!那么今天的“连接字符串”的功能有什么实际存在的意义呢?
案例一:制作日数据汇报
前文的小案例展示还记得吧,如果你细心、耐心地看到了这里,那么就可以看到更加优化的日数据汇报的格式。我们在A6单元格输入函数(我们这里合并了A6:C6区域单元格,再缩进3个字节,是为了转发时更美观。)
="汇报日期:"&
TEXT(A2+1,"yyyy年mm月dd日")&
CHAR(10)&
" 28日营业额:"&ROUND(B2/10000,2)&"万元,"&
CHAR(10)&
" 上周营业额:"&ROUND(C2/10000,2)&"万元,"&
CHAR(10)&
" 本周已销售:"&ROUND(D2/10000,2)&
"万元!"
使用“&”连接了各个字符串,由此我们可以发现,无论是函数返回值、文本字符串都可以使用“&”连接。接着使用CHAR(10)返回换行符,使要发送的内容更有层次感,这样我们在要发送数据的时候,直接复制粘贴,再点发送就完工了。
这里值得一说的是:字符串连接后,其中的任何内容都是不带格式的,比如日期格式、会计专用格式等等,在字符串连接后只保留常规格式,所以我们经常需要使用其他函数来转换,就像案例中的TEXT函数将数据的格式转换成日期格式一样。
案例二:快速制作数据有效性的下拉内容
用数据验证制作下拉菜单,相信很多同学都会,如果只有三、五种选项,我们直接在数据验证窗口中录入就好了。如果内容很多的话,我们也可以使用名称管理器。那么借今天文章的主题,我们也可以采用PHONETIC函数来制作。
当然,从建模的角度来说,对于下拉菜单的做法,作者E图表述还是主推“自定义名称”结合“数据验证”的方式来做,可以形成动态的下拉菜单内容。本案例是帮助不会复杂操作的同学,也可以有一个快速操作的体验而设计的。
案例三:经典嵌套INDIRECT+CONCATENATE
我们还用之前的数据,假设我们要把表《方法一》到表《方法五》中,每个表中的A列数据求和,列在一个汇总表里(典型的总-分式汇总表)。如下图所示:
B2单元格输入函数:
{=SUM(--INDIRECT(CONCATENATE(A2,"!A2:A16")))}
输入完成后,按数组函数的结束键CTRL+SHIFT+ENTER三键结束。
函数解析:
A2单元格的值为“方法一”,“!A2:A16”是一个字符串,用CONCATENATE函数将二者连接起来,就形成了一个跨表引用的地址文本值。
再用INDIRECT函数,“激活”这个地址,形成引用,最后用SUM函数对这个区域内容求和即可。
为什么用了“--”?日常中我们可以不使用“--”和“三键”的,因为我们刚才把《方法五》中的A列分列成了“文本”格式,SUM不能对文本数据求和,所以这里我们用了“--”,将文本型数据转换成了数值型数据。
【编后语】
&、CONCATENATE函数、PHONETIC函数,我们都有了整体的介绍,也都给了一个案例的展示,实际工作中还是要看每个人对于函数原理的理解和使用思路,函数语法和功能是死的,只有明白其应用的范畴,才可以灵活掌握。今天的教程就到这里了,多加练习吧。