跟着视频学Excel数据处理:函数篇
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第2章
基础函数:打好基础,轻松实现数据处理

2.1 文本函数

2.1.1 RIGHT:从右侧提取字符函数

公式:=RIGHT(text,num_chars)

要注意的知识点

第1点:RIGHT函数用于从单元格的右侧提取字符。

第2点:此函数有两个参数。第1参数:从哪个单元格中提取字符;第2参数:提取第几个字符。

第3点:如果第2参数是1,则可以省略。

案例01 使用RIGHT函数提取单元格中的字符

案例及公式如下图所示。这里要从A1单元格中把“教育”两个字提取出来。

公式

=RIGHT(A1,2)

公式解释

第1参数:A1,即从A1单元格中提取字符。

第2参数:2,即从单元格的右侧提取两个字符。

本案例视频文件:02/案例01 使用RIGHT函数提取单元格中的字符

2.1.2 LEFT:从左侧提取字符函数

公式:=LEFT(text,num_chars)

要注意的知识点

第1点:LEFT函数用于从单元格的左侧提取字符。

第2点:此函数有两个参数。第1参数:从哪个单元格中提取字符;第2参数:提取第几个字符。

第3点:如果第2参数是1,则可以省略。

案例02 使用LEFT函数提取单元格中的字符

案例及公式如下图所示。这里要从A1单元格中把“完美”两个字提取出来。

公式

=LEFT(A1,2)

公式解释

第1参数:A1,即从A1单元格中提取字符。

第2参数:2,即从单元格的左侧提取两个字符。

本案例视频文件:02/案例02 使用LEFT函数提取单元格中的字符

2.1.3 MID:从中间提取字符函数

公式:=MID(text,start_num,num_chars)

要注意的知识点

第1点:MID函数的作用是从单元格的中间提取字符。

第2点:此函数有3个参数。第1参数:从哪个单元格中提取字符;第2参数:从哪个位置开始提取字符;第3参:提取第几个字符。

案例03 使用MID函数提取单元格中的字符

案例及公式如下图所示。这里要从A1单元格中把“在线”两个字提取出来。

公式

=MID(A1,3,2)

公式解释

第1参数:A1,即从A1单元格中提取字符。

第2参数:3,即从第3个位置开始提取字符。

第3参数:2,即提取两个字符。

本案例视频文件:02/案例03 使用MID函数提取单元格中的字符

2.1.4 LEN:计算文本长度函数

公式:=LEN(text)

要注意的知识点

第1点:LEN函数用于统计单元格中字符的个数,不分单/双字节。

第2点:此函数只有一个参数。

案例04 使用LEN函数统计单元格中有多少个字符

案例及公式如下图所示。这里要统计A1单元格中有多少个字符。

公式

=LEN(A1)

公式解释

第1参数:A1,即要统计的单元格。在A1单元格中,“完美”是两个汉字,“JY”是两个字母,“141797”是6个数字,统计结果为共有10个字符。

本案例视频文件:02/案例04 使用LEN函数统计单元格中有多少个字符

2.1.5 LENB:文本长度计算函数(区分单/双字节)

公式:=LENB(text)

要注意的知识点

第1点:LENB函数的作用是统计单元格中字符的个数。

第2点:此函数只有一个参数。

第3点:此函数区分单/双字节,在英文半角状态下,1个汉字算2个字节;1个字母算1个字节;1个数字算1个字节。而LEN函数不区分单/双字节。

案例05 使用LENB函数统计单元格中共有几个字符

案例及公式如下图所示。这里要统计A1单元格中共有几个字符。

公式

=LENB(A1)

公式解释

在A1单元格中,“完美”两个字算4个字符;“A”算1个字符;“9”算1个字符,所以共有6个字符。

本案例视频文件:02/案例05 使用LENB函数统计单元格中共有几个字符

案例06 使用LENB函数提取单元格中左边的汉字

案例及公式如下图所示。这里要提取A1单元格中左边的汉字。

公式

=LEFT(A2,LENB(A2)-LEN(A2))

公式解释

LENB(A2)-LEN(A2)用于计算汉字的个数,因为使用LENB函数统计时,汉字算2个字符,数字算1个字符,而使用LEN函数统计时数字和汉字都算1个字符,因此LENB(A2)-LEN(A2)就是将数字抵消了,而2倍的汉字的字符个数减掉1倍的汉字的字符个数,剩下的就是1倍的汉字的字符个数,也就是汉字的个数。

本案例视频文件:02/案例06 使用LENB函数提取单元格中左边的汉字

案例07 使用LENB函数提取单元格中右边的数字

案例及公式如下图所示。这里要提取A1单元格中右边的数字。

公式

=RIGHT(A2,2*LEN(A2)-LENB(A2))

公式解释

此函数是把所有的字符当作汉字,也就是将字符个数放大两倍:2*LEN(A2),如果A2单元格中有28个字符,而LENB函数只是将字符个数放大了2倍,数字个数没有被放大,因此2倍的字符个数减去2倍的字符个数等于零,而2倍的数字个数减去1倍的数字个数得到的就是数字的个数。

本案例视频文件:02/案例07 使用LENB函数提取单元格右边的数字

2.1.6 MIDB:从指定位置提取字符函数(区分单/双字节)

公式:=MIDB(text,start_num,num_bytes)

要注意的知识点

第1点:MIDB函数有3个参数,第1参数表示从哪一个字符串或者单元格中提取字符;第2参数表示从第几个位置开始提取;第3参数表示提取几个字符。

第2点:此函数区分单/双字节,即1个汉字算2个字节,1个字母算1个字节,1个数字算1个字节。

案例08 使用MIDB函数从单元格中提取指定的字符

案例及公式如下图所示。这里要从A1单元格中提取指定的字符。

公式

=MIDB(A1,11,2)

公式解释

第1参数:从A1单元格中提取字符;第2参数:从第11个字符开始提取,“王氏镜片”算8个字符,而“VZ”算2个字符,所以从第11个字符(即“4”)开始提取;第3参数为2,即提取2个字符,两个数字算两个字符,所以结果为“45”。

本案例视频文件:02/案例08 使用MIDB函数从单元格中提取指定的字符

2.1.7 SEARCH:不区分大/小写、支持通配符的查找函数

公式:=SEARCH(find_text,within_text,start_num)

要注意的知识点

第1点:SEARCH函数用于确定某个字符或文本字符串在另一个文本字符串中的位置。

第2点:此函数共有3个参数。第1参数:查找值;第2参数:被查找的字符串;第3参数:从哪个位置开始查找。

第3点:如果从第1个字符开始查找,则第3参数可以不写,只写前两个参数。

第4点:不区分英文的大/小写。

第5点:支持通配符用法。

案例09 使用SEARCH函数查找指定字符的位置

案例及公式如下图所示。这里要从A1单元格中查找“佛山小老鼠”中“老”字的位置。

公式

=SEARCH("老",A1,1)

公式解释

第1参数:查找汉字“老”。

第2参数:从单元格A1中查找。

第3参数:从第1个位置开始查找。

结果返回4,因为“老”字在第4个字符位置。由于第3参数是1,则此公式也可以写成=SEARCH("老",A1)。

本案例视频文件:02/案例09 使用SEARCH函数查找指定字符的位置

2.1.8 SEARCHB:查找指定字符位置函数(区分单/双字节)

公式:=SEARCHB(find_text,within_text,start_num)

要注意的知识点

SEARCHB函数和SEARCH函数的用法基本一样,区别在于SEARCH函数区分单/双字节。

案例10 使用SEARCHB函数提取汉字中间的数字

案例及公式如下图所示。这里要从A列的单元格中提取汉字中间的数字。

公式

=MIDB(A1,SEARCHB("?",A1),2*LEN(A1)-LENB(A1))

公式解释

SEARCHB("?",A1):找到A1单元格中第1个数字出现的位置,“?”通配符代表任意一个单字节。

2*LEN(A1)-LENB(A1):得到数字的个数。

本案例视频文件:02/案例10 使用SEARCHB函数提取汉字中间的数字

注意

因为SEARCHB函数是区分单/双字节的,所以要搭配函数MIDB使用,不能搭配函数MID使用。

2.1.9 FIND:区分大/小写、不支持通配符的查找函数

公式:=FIND(find_text,within_text,start_num)

要注意的知识点

第1点:FIND函数用于查找字符的位置。

第2点:此函数共有3个参数。第1参数:查找值;第2参数:被查找的字符串;第3参数:从哪个位置开始查找。

第3点:如果从第1个位置开始查找,则第3参数可以不写,只写前面两个参数即可。

第4点:区分英文的大/小写。

第5点:不支持通配符用法。

第6点:和SEARCH函数的用法类似。

案例11 使用FIND函数从字符串中查找某个字符串所在的位置

案例及公式如下图所示。这里要从A1单元格中查找字符“佛山”所在的位置。

公式

=FIND("佛山",A1)

公式解释

第1参数:查找值为“佛山”。

第2参数:从A1单元格中查找。

第3参数:省略了,因为是1。

结果返回6,因为前面有5个汉字,这里把“佛山”当作一个整体。

本案例视频文件:02/案例11 使用FIND函数从字符串中查找某个字符串所在的位置

备注

如果找不到字符串,也就是说查找值在A1单元格中没有,则系统会报错。

2.1.10 ASC:将全角双字节字符转换为半角单字节字符函数

公式:=ASC(text)

要注意的知识点

第1点:ASC函数用于把全角双字节的字符转换为半角单字节的字符,有时一些单字节字符是在全角状态下输入的,从而就变成了双字节字符,而ASC函数可以把它还原成单字节字符。

第2点:汉字经过处理之后,还是双字节的。

第3点:此函数有一个参数。

案例12 使用ASC函数把逗号转换为单字节字符

案例及公式如下图所示。这里要把A1单元格中的“在线,教育”中的逗号转换为单字节字符。

公式

=LENB(A1)

=LENB(ASC(A1))

公式解释

没有经过ASC函数处理,A1单元格中的逗号算双字节字符,经过ASC函数处理之后,此逗号变为单字节字符。因为1个汉字算2个字符,所以=LENB(A1)返回10;而=LENB(ASC(A1))返回9。

本案例视频文件:02/案例12 使用ASC函数把逗号转换为单字节字符

2.1.11 WIDECHAR:把单字节字符转换为双字节字符函数

公式:=WIDECHAR(text)

要注意的知识点

第1点:WIDECHAR函数用于把单字节字符转换为双字节字符。

第2点:此函数只有1个参数。

案例13 使用WIDECHAR函数把单字节字符转换成双字节字符

案例及公式如下图所示。这里要把A1单元格中的“在线, 12教育”转换成双字节字符。

公式

=WIDECHAR(A1)

公式解释

此函数只有一个参数,即要处理的字符串。

本案例视频文件:02/案例13 使用WIDECHAR函数把单字节字符转换成双字节字符

2.1.12 CHAR:将数字转换为字符函数

公式:=CHAR(number)

要注意的知识点

第1点:CHAR函数的作用就是将数字转换为字符。

第2点:此函数只有1个参数,即数字。

案例14 使用CHAR函数自动填充26个大写字母

案例及公式如下图所示。这里要在A行中填充26个大写字母。

公式

=CHAR(COLUMN()+64)

公式解释

COLUMN函数中没有参数,表示公式在哪一个单元格中就返回哪一个单元格的列号。当公式在A1单元格中时,返回1,然后1+64等于65,而65对应的是字母A。当公式在B1单元格中时,返回2,2+64=66,而66对应的是字母B,依此类推。

本案例视频文件:02/案例14 用CHAR函数自动填充26个大写字母

2.1.13 CODE:将字符转换为数字函数

公式:=CODE(text)

要注意的知识点

第1点:CODE函数用于根据字符返回ASCII码。一个字符对应一个数字编码。

第2点:此函数只有1个参数,即要处理的字符。

案例15 使用CODE函数求字母A的ASCII码

案例及公式如下图所示。这里要求字母A的ASCII码是多少。

公式

=CODE(A1)

公式解释

CODE函数和CHAR函数是一对“姐妹函数”。在此案例中,A对应的ASCII码是65。

本案例视频文件:02/案例15 使用CODE函数求字母A的ASCII码

2.1.14 UPPER:将小写字母转换为大写字母函数

公式:=UPPER(text)

要注意的知识点

第1点:UPPER函数用于把小写字母转换为大写字母。

第2点:此函数只有一个参数,即要处理的字母。

案例16 使用UPPER函数把字母由小写转换为大写

案例及公式如下图所示。这里要把A1单元格中的字母由小写转为大写。

公式

=UPPER(A1)

公式解释

UPPER函数:把小写字母转换为大写字母。

LOWER函数:把大写字母转换为小写字母。

PROPER函数:把每一个单词的首字母转换为大写字母。

后两个函数在这里就不举例了,读者可以自己动手测试。

本案例视频文件:02/案例16 使用UPPER函数把字母由小写转换为大写

2.1.15 REPLACE:查找和替换函数

公式:=REPLACE(old_text,start_num,num_chars,new_text)

要注意的知识点

第1点:REPLACE函数为查找和替换函数。

第2点:此函数用于把一个字符串替换成另一个字符串。

第3点:此函数有4个参数。第1参数:在哪个字符串中进行查找和替换;第2参数:从哪个位置开始查找;第3参数:替换几个字符;第4参数:替换成新的字符串。

第4点:当第3参数省略时,就相当于插入字符串。

案例17 使用REPLACE函数把银行卡号每隔4位加一个空格

案例及公式如下图所示。这里要把A1单元格中的银行卡号每隔4位加一个空格。

公式

=REPLACE(REPLACE(REPLACE(REPLACE(A1,5,," "),10,," "),15,," "),20,," ")

公式解释

最内层的REPLACE函数的第1参数是A1;第2参数是5,所以从第5个字符开始查找;第3参数省略,相当于插入字符串的作用;第4参数为空格。其他REPLACE函数的参数含义依此类推。

本案例视频文件:02/案例17 使用REPLACE函数把银行卡号每隔4位加一个空格

2.1.16 TEXT:格式转换函数

公式:=TEXT(value,format_text)

要注意的知识点

第1点:TEXT函数用于根据第1参数的值显示第2参数的格式。

第2点:此函数有两个参数。第1参数:要处理的数据;第2参数:要显示的格式。

第3点:第2参数有4节:第1节为正数;第2节为负数;第3节为零;第4节为文本,中间用分号分隔。

案例18 使用TEXT函数将0值屏蔽且保留1位小数

案例及公式如下图所示。这里要把A列单元格中的0值屏蔽且保留1位小数。

公式

=TEXT(A2,"0.0;-0.0;")

公式解释

第2参数共有3节:第1节为正数——0.0,保留1位小数;第2节为负数—— -0.0,也是保留1位小数;第3节什么也不显示,为空格。

本案例视频文件:案例18使用TEXT函数将0值屏蔽且保留1位小数

案例19 使用TEXT函数计算2008-8-8是星期几

案例及公式如下图所示。

公式

=TEXT(A2,"AAAA")

公式解释

第2参数为AAAA,表示中文的“星期”。

第2参数为AAA,表示数字,如星期五,只显示“五”。

第2参数为DDDD,表示英文的星期几。

第2参数为DDD,表示英文的星期几的前3个字母,如Monday,只显示Mon。

本案例视频文件:02/案例19 用TEXT函数计算2008-8-8是星期几

案例20 使用TEXT函数根据分数判断成绩等级

案例及公式如下图所示。其中当分数小于60时为不及格;当分数大于或等于60且小于70时为及格;当分数大于或等于70且小于80时为良好,当分数大于或等于80时为优秀。

当然这个问题也可以用IF或者LOOKUP、VLOOKUP、HLOOKUP等函数求解。

公式

=TEXT(TEXT(A2,"[<60]不及格;[<70]及格;0"),"[<80]良好;优秀")

公式解释

这里应用了TEXT函数嵌套,也就是说,最外面的TEXT函数的第1参数为一个TEXT函数。

嵌套的TEXT函数中有两个条件:返回不及格和及格的结果,剩下的大于或等于70的数值全放在第3节上,第3节只用了一个0作为占位符,然后由第1个TEXT函数进行处理。

最外面的TEXT函数的第2参数设置了小于80的数值显示为“良好”,剩下的大于或等于80的数值显示为“优秀”。

本案例视频文件:02/案例20 用TEXT函数根据分数判断成绩等级

案例21 使用TEXT函数将大于100的数值显示为100,将小于或等于100的数值显示为其本身

案例及公式如下图所示。这里用TEXT函数将大于100的数值显示为100,将小于或等于100的数值显示为其本身。

公式

=TEXT(A1,"[>100]1!0!0;0")

公式解释

这里的TEXT函数的第2参数有两节,第1节设置了条件,不满足条件的放在第2节中。

为什么第1节显示100还要在它前面加两个0?这是强制显示0,否则就会把0当作数字占位符了。

本案例视频文件:02/案例21 使用TEXT函数将大于100的数值显示为100,将小于或等于100的数值显示为其本身

备注

当然可以用IF函数或者其他函数解决此问题。

2.1.17 T:检测给定值是否为文本函数

公式:=T(value)

要注意的知识点:

第1点:T函数用于判断单元格中的值是否是文本,如果是文本,则返回文本本身,如果是数值,则返回空值。

第2点:日期、时间都是数值。

第3点:T函数也有降维的作用,返回的是文本值。

案例22 使用T函数实现只保留文本

案例及公式如下图所示。这里只保留A列中的文本。

公式

=T(A1)

公式解释

因为A2单元格中的“100”是文本,所以保留此数值。

A6单元格中的是时间,A7单元格中的是日期,由于时间和日期都是数字,所以这里显示为空值。

本案例视频文件:02/案例22 使用T函数实现只保留文本

2.1.18 TRIM:清除空格字符专用函数

公式:=TRIM(text)

要注意的知识点

第1点:TRIM函数用于清除单元格中两端的空格,中间的空格不清除。

第2点:此函数只有一个参数,即要处理的单元格。

案例23 使用TRIM函数清除单元格两端的空格

案例及公式如下图所示。这里要清除A1单元格两端的空格。

公式

=TRIM(A1)

公式解释

这里使用A1单元格作为参数,将“大”字前面的空格去掉,将最后一个“好”字后面的空格也去掉。

本案例视频文件:02/案例23 使用TRIM函数清除单元格两端的空格

2.1.19 SUBSTITUTE:按值替换函数

公式:=SUBSTITUTE(text,old_text,new_text,instance_num)

要注意的知识点:

第1点:SUBSTITUTE函数共有4个参数:第1参数:要处理的文本;第2参数:被替换的字符;第3参数:要替换成的字符;第4参数:替换第几个字符。

第2点:如果将字符全部替换,那么第4参数可以省略。

案例24 使用SUBSTITUTE函数统计单元格中有多少个“c”

案例及公式如下图所示。这里要统计A1单元格中有多少个“c”。

公式

=LEN(A1)-LEN(SUBSTITUTE(A1,"c",""))

公式解释

在SUBSTITUTE函数中,第1参数:A1;第2参数:“c”;第3参数:“”;第4参数:省略,也就是全部替换。

此公式把A1单元格中的“c”替换成空值,再用LEN函数统计字符的个数。

当字母“c”没有被替换成空值时,用LEN函数统计字符的个数。

用替换前字符的个数减去替换后空值的个数,就得到了字母“c”的个数。

本案例视频文件:02/案例24 使用SUBSTITUTE函数统计单元格中有多少个“c”