在进行数据分析的时候,我们会对数据进行分类(比如数值型,字符型)。那为什么要对数据进行分类呢?因为不同的数据类型有自己的特点。比如数值型数据,可以进行加减乘除等算术运算。如5+5=10,而字符型数据则不能进行算术运算。如字符串abc和字符串def就不能进行算术运算。但这两个字符串可以进行连接运算。连接成abcdef。
今天要讲的就是如何进行字符串连接。先看看如何实现上面例子中的功能。
问题:如何将两个字符串连接在一起?
可以使用concatenate函数,如果要连接a1,b1单元格中的字符串,可以使用=concatenate(a1,a2),如下图所示:
如果有多个元素需要连接时,直接加上其它单元格就可以。如连接A1,B1,C1单元格的内容可以使用=CONCATENATE(A1,B1,C1)。CONCATENATE中的参数也可以直接换成字符串,而不用单元格表示。如CONCATENATE(A1,“def”),这样得到的结果与上图中的一致。公式中直接以def作为参数时,由于def是字符串,需要加英文双引号来区分。这一规则是大多数程序语言默认的,以后遇到字符型数据时,都要加上双引号。
要实现字符串连接也可以使用字符串连接符&,如上例也可以写为=a1 & a2。同样,也可以使用=a1 & "def"来实现。
在concatenate函数中,我们需要告诉函数要连接的参数是什么类型。如在公式=CONCATENATE(A1,“def”)中,A1是指一个单元格,单元格本除了单元格中的值外,也包括其它信息,如A1的字体颜色,背景颜色,高度,宽度等。当然,A1单元格也包括单元格中数据的类型。因此,A1单元格引用会告诉concatenate函数第一个参数的数据类型。而第二个参数为def是字符型,为了识别是字符,需要加双引号来识别。如果不加双引号,函数函数会默认把他当作数值或名称(如A1就是一个名称)。如=CONCATENATE(A1,2)得到的结果是abc2。
如果我们在第二参数中,使用不加引号的def,如=CONCATENATE(A1,def),那将会怎么样呢?,请看下图:
此时结果将会出错,错误为#NAME?。那#NAME?代表什么意思呢?我们按F1帮助,输入#NAME?,回车,得到下图:
第一个解释,公式引用了未定义的名称,因为def没有加引号,不是字符串类型,也不是数值型数据,那有可能是一个名称,但是这个名称还没有定义,所以无法引用。这里的名称可以简单的理解为某个单元格或单元格区域的引用标志,例如b3可以用来标识第3行,第2列的单元格。同样的道理,def通过设置后也可以用来表示某个单元格或区域,设置后def即为一个名称。如果名称还没有定义,就去使用,就会出现错误#NAME?。
#NAME?表示的内容通过字面意思比较容易理解。很多错误都会以#开关,NAME表示名字,名称,问号(?)可理解为找不到,在哪里。所以#NAME?表示找不到名称。
但是本文中的例子,我们本意是连接字符串,而不是使用了一个还没有定义的名称。从上图的解释来看,明显是第4条,语法中缺少用于文本的双引号。
今天的concatenate函数就讲到这里,本来想讲几个,但想着字数太多看起来比较累,还是分开几次来讲吧!
(本文为原创,未经允许,不得转载)
网友评论