文本函数
CHAPTER3
77
第三章
文本函数
3.1文本函数基础
3.2文本函数实例速查
78
CHAPTER3
文本函数
所谓文本函数,就是可以在公式中处理文字串的函数。例如,可以改
变大小写或确定文字串的长度;可以替换某些字符或者去除某些字符等。
而日期和时间函数则可以在公式中分析和处理日期值和时间值。
3.1
文本函数基础
文本是指出了数值、日期或时间、公式之外的字母和数值字符的任意
组合。但此、名称和标签很明显都属于文本值。单元格中前面以“''”开头
的内容,或者采用文本格式的内容也属于文本,文本值也被称为字符串。
3.1.1
大小写转换
(1)LOWER:将一个文字串中的所有大写字母转换为小写字母。
(2)UPPER:将文本转换成大写形式。
(3)PROPER:将文字串的首字母及任何非字母字符之后的首字母
转换成大写。将其余的字母转换成小写。
这三种函数的基本语法形式均为函数名(text)。示例说明:
已有字符串为:pLeaseComEHere!可以看到由于输入的不规范,这
句话大小写乱用了。通过以上三个函数可以将文本转换显示样式,使得文
本变得规范。
Lower(pLeaseComEHere!)=pleasecomehere!
upper(pLeaseComEHere!)=PLEASECOMEHERE!
proper(pLeaseComEHere!)=PleaseComeHere!
3.1.2
取出字符串中的部分字符
用户可以使用Mid、Left、Right等函数从长字符串内获取一部分字
符。具体语法格式为:
(1)LEFT函数:LEFT(text,num_chars)其中Text是包含要提取
文本函数
CHAPTER3
79
字符的文本串。Num_chars指定要由LEFT所提取的字符数。
(2)MID函数:MID(text,start_num,num_chars)其中Text是包含
要提取字符的文本串。Start_num是文本中要提取的第一个字符的位置。
(3)RIGHT函数:RIGHT(text,num_chars)其中Text是包含要提取
字符的文本串。Num_chars指定希望RIGHT提取的字符数。
比如,从字符串“Thisisanapple.”分别取出字符“This”、
“apple”、“is”的具体函数写法为。
LEFT("Thisisanapple",4)=This
RIGHT("Thisisanapple",5)=apple
MID("Thisisanapple",6,2)=is
取出字符串中
的部分字符
3.1.3
去除字符串的空白
在字符串形态中,空白也是一个有效的字符,但是如果字符串中出现
空白字符时,容易在判断或对比数据是发生错误,在Excel中你可以使用
Trim函数清除字符串中的空白。
语法形式为:TRIM(text)其中Text为需要清除其中空格的文本。
Trim函数不会清除单词之间的单个空格,如果连这部分空格都需清除
的话,建议使用替换功能。比如,从字符串“MynameisMary“中清除空
格的函数写法为:TRIM("MynameisMary")=MynameisMary。
80
CHAPTER3
文本函数
3.1.4
字符串的比较
在数据表中经常会比对不同的字符串,此时你可以使用EXACT函数
来比较两个字符串是否相同。该函数测试两个字符串是否完全相同。如果
它们完全相同,则返回TRUE;否则,返回FALSE。函数EXACT能区分
大小写,但忽略格式上的差异。利用函数EXACT可以测试输入文档内的
文字。语法形式为:EXACT(text1,text2)Text1为待比较的第一个字符
串。Text2为待比较的第二个字符串,举例说明。参见下图:
EXACT("China","china")=False
字符串的比较
3.2
文本函数实例速查
例
1ASC(
将字符串中的全角英文字母更改为半角字符
)
用途:将字符串中的全角(双字节)英文字母更改为半角(单字节)字符。
语法:ASC(text)
参数:Text为文本或包含文本的单元格引用。如果文本中不包含任何
全角英文字母,则文本不会被更改。
实例:如果A1=excel,则公式“=ASC(A1)”返回excel。
例
2CHAR(
返回对应于数字代码的字符
)
用途:返回对应于数字代码的字符,该函数可将其他类型的电脑
文件中的代码转换为字符(操作环境为MacintoshMacintosh字符集和
WindowsANSI字符集)。
语法:CHAR(number)。
参数:Number是用于转换的字符代码,介于1~255之间(使用当前计
文本函数
CHAPTER3
81
算机字符集中的字符)。
实例:公式“=CHAR(56)”返回8,=CHAR(36)返回$。
例
3CLEAN(
删除文本中不能打印的字符
)
用途:删除文本中不能打印的字符。对从其他应用程序中输入的字符
串使用CLEAN函数,将删除其中含有的当前操作系统无法打印的字符。
语法:CLEAN(text)。
参数:Text为要从中删除不能打印字符的任何字符串。
实例:由于CHAR(7)返回一个不能打印的字符,因此公式“=CLEAN(
CHAR(7)&"text"&CHAR(7))”返回text。
例
4CODE(
返回文字串中第一个字符的数字代码
)
用途:返回文字串中第一个字符的数字代码(对应于计算机当前使用的
字符集)。
语法:CODE(text)
参数:Text为需要得到其第一个字符代码的文本。
实例:因为CHAR(65)返回A,所以公式“=CODE("Alphabet")”返
回65。
例
5CONCATENATE(
将若干文字串合并到一个文字串中
)
用途:将若干文字串合并到一个文字串中,其功能与"&"运算符相同。
语法:CONCATENATE(text1,text2,...)
参数:Text1,text2,...为1到30个将要合并成单个文本的文本项,
这些文本项可以是文字串、数字或对单个单元格的引用。
实例:如果A1=98、A2=千米,则公式“=CONCATENATE(A1,
A2)”返回“98千米”,与公式“=A1&A2”等价。
例
6DOLLAR
或
RMB(
按货币格式将小数四舍五入并转换成文字
)
用途:按照货币格式将小数四舍五入到指定的位数并转换成文字。
语法:DOLLAR(number,decimals)或RMB(number,decimals)。
参数:Number是数字、包含数字的单元格引用,或计算结果为数字的
公式;Decimals是十进制的小数,如果Decimals为负数,则参数number
82
CHAPTER3
文本函数
从小数点往左按相应位数取整。如果省略Decimals,则假设其值为2。
实例:公式“=RMB(1586.567,2)”返回“1586.57”,
=RMB(99.888)返回“99.89”。
例
7EXACT(
测试两个字符串是否完全相同
)
用途:测试两个字符串是否完全相同。如果它们完全相同,则返回
TRUE;否则返回FALSE。EXACT函数能区分大小写,但忽略格式上的
差异。
语法:EXACT(text1,text2)。
参数:Text1是待比较的第一个字符串,Text2是待比较的第二个字
符串。
实例:如果A1=物理、A2=化学A3=物理,则公式“=EXACT(A1,
A2)”返回FALSE,=EXACT(A1,A3)返回FALSE,
=EXACT("word","word")返回TRUE。
例
8FIND(
用于查找文本串
)
用途:FIND用于查找其他文本串(within_text)内的文本串
(find_text),并从within_text的首字符开始返回find_text的起始位置编
号。此函数适用于双字节字符,它区分大小写但不允许使用通配符。
语法:FIND(find_text,within_text,start_num),
参数:Find_text是待查找的目标文本;Within_text是包含待查找文
本的源文本;Start_num指定从其开始进行查找的字符,即within_text中
编号为1的字符。如果忽略start_num,则假设其为1。
实例:如果A1=软件报,则公式“=FIND("软件",A1,1)”返回1。
例
9FINDB(
查找文本串,并返回起始位置编号
)
用途:FINDB用于查找其他文本串(within_text)内的文本串
(find_text),并根据每个字符使用的字节数从within_text的首字符开始返
回find_text的起始位置编号。FIND与FINDB的区别在于:前者是以字符数
为单位返回起始位置编号,后者是以字节数为单位返回起始位置编号。
语法:FINDB(find_text,within_text,start_num)
参数:Find_text是待查找的目标文本;Within_text是包含待查找文
文本函数
CHAPTER3
83
本的源文本;Start_num指定从其开始进行查找的字符,即within_text中
编号为1的字符。如果忽略start_num,则假设其为1。
注意
此函数适用于双字节字符,它能区分大小写但不允许使用
通配符。其它事项与FIND函数相同。
实例:如果A1=电脑爱好者,则公式“=FINDB(爱好者",A1,1)”返
回5。因为每个字符均按字节进行计算,而一个汉字为2个字节,所以第三
个汉字“爱”从第五个字节开始。
例
10FIXED(
四舍五入一个数以文字串形式返回结果
)
用途:按指定的小数位数四舍五入一个数,以小数格式设置后以文字
串形式返回结果。
语法:FIXED(number,decimals,no_commas)。
参数:Number是要进行四舍五入并转换成文字串的数;Decimals
为一数值,用以指定小数点右边的小数位数;No_commas为一逻辑值。
如果是TRUE,则函数FIXED返回的文字不含逗号。如果no_commas是
FALSE或省略,则返回的文字中包含逗号。
实例:如果A1=2001.16845,则公式“=FIXED(A2,2,TRUE)”返
回2001.17,=FIXED(6834.567,-1)返回6830。
例
11JIS(
将字符串中的半角英文字母更改为全角字符
)
用途:将字符串中的半角(单字节)英文字母更改为全角(双字节)字符。
语法:JIS(text)
参数:Text为文本或对包含文本的单元格(或引用)。如果文本中不包
含任何半角英文字母,则文本不会更改。
实例:如果A1=excel,则公式“=JIS(a1)”返回EXCEL。
例
12LEFT
或
LEFTB(
返回文本串中的第一个或前几个字符
(
节
))
用途:根据指定的字符数返回文本串中的第一个或前几个字符。此函
数用于双字节字符。
84
CHAPTER3
文本函数
语法:LEFT(text,num_chars)或LEFTB(text,num_bytes)。
参数:Text是包含要提取字符的文本串;Num_chars指定函数要提取
的字符数,它必须大于或等于0。Num_bytes按字节数指定由LEFTB提取
的字符数。
实例:如果A1=电脑爱好者,则LEFT(A1,2)返回“电脑”,
LEFTB(A1,2)返回“电”。
例
13LEN
或
LENB(
返回文本串的字符数和所有字符的字节数
)
用途:LEN返回文本串的字符数。LENB返回文本串中所有字符的
字节数。
语法:LEN(text)或LENB(text)。
参数:Text待要查找其长度的文本。
注意
此函数用于双字节字符,且空格也将作为字符进行统计。
实例:如果A1=电脑爱好者,则公式“=LEN(A1)”返回5,
=LENB(A1)返回10。
例
14LOWER(
将所有大写字母转换为小写字母
)
用途:将一个文字串中的所有大写字母转换为小写字母。
语法:LOWER(text)。语法:Text是包含待转换字母的文字串。
注意
LOWER函数不改变文字串中非字母的字符。LOWER与
PROPER和UPPER函数非常相似。
实例:如果A1=Excel,则公式“=LOWER(A1)”返回excel。
文本函数
CHAPTER3
85
例
15MID
或
MIDB(
返回文本串中特定数目的字符
(
节
))
用途:MID返回文本串中从指定位置开始的特定数目的字符,该数目由
用户指定。MIDB返回文本串中从指定位置开始的特定数目的字符,该数目
由用户指定。MIDB函数可以用于双字节字符。
语法:MID(text,start_num,num_chars)或MIDB(text,
start_num,num_bytes)。
参数:Text是包含要提取字符的文本串。Start_num是文本中要提
取的第一个字符的位置,文本中第一个字符的start_num为1,以此类推;
Num_chars指定希望MID从文本中返回字符的个数;Num_bytes指定希望
MIDB从文本中按字节返回字符的个数。
实例:如果a1=电子计算机,则公式“=MID(A1,3,2)”返回“计
算”,=MIDB(A1,3,2)返回“子”。
例
16PHONETIC(
提取文本串中的拼音
(furigana)
字符
)
用途:提取文本串中的拼音(furigana)字符。
语法:PHONETIC(reference)。
参数:Reference为文本串或对单个单元格或包含文本串的单元格区
域的引用。如果reference为单元格区域,则返回区域左上角单元格中的
furigana文本串。如果reference为不相邻单元格的区域,将返回#N/A
错误值。
注意
该函数在中文Excel中无效。
例
17PROPER(
将文字串的首字母转换成大写
)
用途:将文字串的首字母及任何非字母字符之后的首字母转换成大
写。将其余的字母转换成小写。
语法:PROPER(text)参数:Text是需要进行转换的字符串,包括双
引号中的文字串、返回文本值的公式或对含有文本的单元格引用等。
86
CHAPTER3
文本函数
实例:如果A1=学习excel,则公式“=PROPER(A1)”返回“学习
Excel”。
例
18REPLACE
或
REPLACEB(
指定字符
(
节
)
数替换文本
)
用途:REPLACE使用其他文本串并根据所指定的字符数替换另一文
本串中的部分文本。REPLACEB的用途与REPLACE相同,它是根据所指
定的字节数替换另一文本串中的部分文本。
语法:REPLACE(old_text,start_num,num_chars,
new_text),REPLACEB(old_text,start_num,num_bytes,
new_text)。参数:Old_text是要替换其部分字符的文本;Start_num
是要用new_text替换的old_text中字符的位置;Num_chars是希望
REPLACE使用new_text替换old_text中字符的个数;Num_bytes是希
望REPLACE使用new_text替换old_text的字节数;New_text是要用于
替换old_text中字符的文本。
注意
以上两函数均适用于双字节的汉字。
实例:如果A1=学习的革命、A2=电脑,则公式“=REPLACE(A1,
3,3,A2)”返回“学习电脑”,=REPLACEB(A1,2,3,A2)返回“电
脑的革命”。
例
19REPT(
按照给定的次数重复显示文本
)
用途:按照给定的次数重复显示文本。可以通过REPT函数对单元格
进行重复填充。
语法:REPT(text,number_times)。
参数:Text是需要重复显示的文本,Number_times是重复显示的次
数(正数)。
文本函数
CHAPTER3
87
注意
REPT函数的结果不能多于255个字符。
实例:公式“=REPT("软件报",2)”返回“软件报软件报”。
例
20RIGHT
或
RIGHTB(
返回文本串中最后一个或多个字符
(
节
))
用途:RIGHT根据所指定的字符数返回文本串中最后一个或多个字
符。RIGHTB根据所指定的字节数返回文本串中最后一个或多个字符。
语法:RIGHT(text,num_chars),RIGHTB(text,num_bytes)。
参数:Text是包含要提取字符的文本串;Num_chars指定希望
RIGHT提取的字符数,它必须大于或等于0。如果num_chars大于文本
长度,则RIGHT返回所有文本。如果忽略num_chars,则假定其为1。
Num_bytes指定欲提取字符的字节数。
实例:如果A1=学习的革命,则公式“=RIGHT(A1,2)”返回“革
命”,=RIGHTB(A1,2)返回“命”。
例
21SEARCH
或
SEARCHB(
用
start_num
首次找到字符位置编号
)
用途:返回从start_num开始首次找到特定字符或文本串的位置编
号。其中SEARCH以字符数为单位,SEARCHB以字节数为单位。
语法:SEARCH(find_text,within_text,start_num),
SEARCHB(find_text,within_text,start_num)。
参数:Find_text是要查找的文本,可以使用通配符,包括问号“?”
和星号“”。其中问号可匹配任意的单个字符,
星号可匹配任意的连续字符。如果要查找实际的问号或星号,应当
在该字符前键入波浪线“~”。Within_text是要在其中查找find_text的
文本。Start_num是within_text中开始查找的字符的编号。如果忽略
start_num,则假定其为1。
实例:如果A1=学习的革命,则公式“=SEARCH("的",A1)”返回
3,=SEARCHB("的",A1)返回5。
88
CHAPTER3
文本函数
例
22SUBSTITUTE(
在文字串中用
new_text
替代
old_text)
用途:在文字串中用new_text替代old_text。如果需要在一个文字串
中替换指定的文本,可以使用函数SUBSTITUTE;
如果需要在某一文字串中替换指定位置处的任意文本,就应当使用函
数REPLACE。
语法:SUBSTITUTE(text,old_text,new_text,
instance_num)。
参数:Text是需要替换其中字符的文本,或是含有文本的单元格引
用;Old_text是需要替换的旧文本;New_text用于替换old_text的文
本;Instance_num为一数值,用来指定以new_text替换第几次出现的
old_text;如果指定了instance_num,则只有满足要求的old_text被替
换;否则将用new_text替换Text中出现的所有old_text。
实例:如果A1=学习的革命、A2=电脑,则公式
“=SUBSTITUTE(A1,"的革命",A2,1)”返回“学习电脑”。
例
23T(
将数值转换成文本
)
用途:将数值转换成文本。
语法:T(value)。
参数:Value是需要进行测试的数据。如果value本身就是文本,或是
对文本单元格的引用,T函数将返回value;如果没有引用文本,则返回
""(空文本)。
实例:如果A1中含有文本“电脑”,则公式“=T(A1)”返回“电
脑”。
例
24TEXT(
将数值转换为按指定数字格式表示的文本
)
用途:将数值转换为按指定数字格式表示的文本。
语法:TEXT(value,format_text)。
参数:Value是数值、计算结果是数值的公式、或对数值单元格的引
用;Format_text是所要选用的文本型数字格式,即“单元格格式”对
话框“数字”选项卡的“分类”列表框中显示的格式,它不能包含星号
“”。
文本函数
CHAPTER3
89
注意
使用“单元格格式”对话框的“数字”选项卡设置单元格
格式,只会改变单元格的格式而不会影响其中的数值。使用函数
TEXT可以将数值转换为带格式的文本,而其结果将不再作为数
字参与计算。
实例:如果A1=2986.638,则公式“=TEXT(A5,"#,##0.00")”
返回2,986.64。
例
25TRIM(
清除文本中的所有的空格
)
用途:除了单词之间的单个空格外,清除文本中的所有的空格。如果
从其他应用程序中获得了带有不规则空格的文本,可以使用TRIM函数清除
这些空格。
语法:TRIM(text)。
参数:Text是需要清除其中空格的文本。
实例:如果A1=FirstQuarterEarnings,则公式“=TRIM(A1)”返回
“FirstQuarterEarnings”。
例
26UPPER(
将文本转换成大写形式
)
用途:将文本转换成大写形式。
语法:UPPER(text)。
参数:Text为需要转换成大写形式的文本,它可以是引用或文字串。
实例:公式“=UPPER("apple")”返回APPLE。
例
27VALUE(
将表示数字的文字串转换成数字
)
用途:将表示数字的文字串转换成数字。
语法:VALUE(text)。
参数:Text为带引号的文本,或对需要进行文本转换的单元格的引
用。它可以是Excel可以识别的任意常数、日期或时间格式。如果Text不
属于上述格式,则VALUE函数返回错误值#VALUE!。
90
CHAPTER3
文本函数
注意
通常不需要在公式中使用VALUE函数,Excel可以在需要
时自动进行转换。VALUE函数主要用于与其他电子表格程序
兼容。
实例:公式“=VALUE("1,000")”返回1000;
=VALUE("16:48:00")-VALUE("12:00:00")返回0.2,该序列数等于4小时
48分钟。
例
28WIDECHAR(
将单字节字符转换为双字节字符
)
用途:将单字节字符转换为双字节字符。
语法:WIDECHAR(text)。
参数:Text是需要转换为双字节字符的文本或包含文本的单元格
引用。
注意
因为汉字本身是双字节字符,所以使用此函数转换汉字时
得到的是汉字的原形。
实例:公式“=WIDECHAR("apple")”返回apple,=WIDECHAR("电
脑")返回“电脑”。
|
|