EXCEL里FIND,FINDF,MID函数用法差别详解
MID既不从第一位开始截取,也不从最后一位开始截取,而是由用户自行指定开始的位置和字符的长度。因此,若用户指定从第一位开始,便和Left函数一样。
使用语法
MID(text,start_num,num_chars)
Text 是包含要提取字符的文本字符串,可以直接输入含有目标文字的单元格名称。
Start_num 是文本中要提取的第一个字符的位置。文本中第一个字符的 start_num 为 1,以此类推。
Num_chars 指定希望 MID 从文本中返回字符的个数。
注意:
如果 start_num 大于文本长度,则 MID 返回空文本 ("")。
如果 start_num 小于文本长度,但 start_num 加上 num_chars 超过了文本的长度,则 MID 只返回至多直到文本末尾的字符。
如果 start_num 小于 1,则 MID 返回错误值 #VALUE!。
如果 num_chars 是负数,则 MID 返回错误值 #VALUE!。
如果 num_bytes 是负数,则 MIDB 返回错误值 #VALUE!。
应用示例:
详细解释
公式“=MID(A2,7,8)”中A2表示要截取的数据为A2单元格的内容“******19851221****”,“7”表示从第7位开始,共截取8个字符,因此系统返回用户想截取的生日时间“19851221”。
FIND用来对原始数据中某个字符串进行定位,以确定其位置。因为该招进行定位时,总是从指定位置开始,返回到的第一个匹配字符串的位置,而不管其后是否还有相匹配的字符串,有点像瞎子摸象,摸到哪就说哪,因此取名“瞎子摸象”。
使用语法
FIND(find_text,within_text,start_num)
Find_text 是要查的文本。
Within_text 是包含要查文本的文本。
Start_num 指定开始进行查的字符。within_text 中的首字符是编号为 1 的字符。如果忽略 start_num,则假设其为 1。
注意:
使用 start_num 可跳过指定数目的字符。例如,假定使用文本字符串“AYF0093.YoungMensApparel”,如果要查文本字符串中说明部分的第一个“Y”的编号,
则可将 start_num 设置为 8,这样就不会查文本的序列号部分。FIND 将从第 8 个字符开始查,而在下一个字符处即可到 find_text,于是返回编号 9。FIND 总是从 within_text 的起始处返回字符编号,如果 start_num 大于 1,也会对跳过的字符进行计数。
如果 find_text 是空文本 (""),则 FIND 则会返回数值1。
Find_text 中不能包含通配符。
如果 within_text 中没有 find_text,则 FIND返回错误值 #VALUE!。
如果 start_num 不大于 0,则 FIND返回错误值 #VALUE!。
如果 start_num 大于 within_text 的长度,则 FIND 返回错误值 #VALUE!。
应用示例:
上图中,对含有不同地方的数据,利用“Find”函数,非常简单地确定了“省”出现的位置。
详细解释
公式“=FIND("省",A2)”中,“省”表示要查的文本为“省”,(实际使用中,也可以很长的一串字符)。要查的对象是A2单元格的内容“广东省东莞市东城区…”,因为没有指定起始位置,所以系统从第一位开始。返回的“3”,表示“省“字在第三位。而“黑龙江省哈尔滨市…”则返回4。
与Find类似,Search函数也有相同的功能。它们的区别是,Find区分大小写,而Search不分大小写(当被查的文本为英文时)。
另外,在Excel中,对文本进行处理的很多函数都提供了一个特别用来处理双字节字符(如中文,日文)的函数,一般是在原函数后加“B”,如FIND, 就有一个FINDB。之前讲过的LEFT,相对应的就是LEFTB等。其实,我们在实际应用中,使用不带“B”的函数就足够了。如果你想使用带“B”的函数,则要特别注意,尤其是在组合运用函数时,其中一个函数使用带“B”的形式,则其它有带“B”形式的函数,全部都要使用其带“B”的形式,否则结果极可能是错的。
FIND
用途: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。
.FINDB
用途:FINDB用于查其他文本串(within_text)内的文本串(find_text),并根据每个字符使用的字节数从within_text的首字符开始返回find_text的起始位置编号。FIND与FINDB的区别在于:前者是以字符数为单位返回起始位置编号,后者是以字节数为单位返回起始位置编号。
语法:FINDB(find_text,within_text,start_num),
参数:Find_text是待查的目标文本;Within_text是包含待查文本的源文本;Start_num指定从其开始进行查的字符,即within_text中编号为1的字符。如果忽略start_num,则假设其为1。
注意:此函数适用于双字节字符,它能区分大小写但不允许使用通配符。其它事项与FIND函数相同。
实例:如果A1=电脑爱好者,则公式“=FINDB("爱好者",A1,1)”返回5。因为每个字符均按字节进行计算,而一个汉字为2个字节,所以第三个汉字“爱”从第五个字节开始。
示例 (FINDB)
在以下示例中,FIND 返回 2,因为空文本 ("") 位于字符串中的第二个位置,而 FINDB 返回 3,因为每个字符均按字节进行计数,而第一个字符包含 2 个字节,所以第二个字符从第三个字节开始。
=FIND("京","东京都") 等于 2
=FINDB("京","东京都" ) 等于 3
同理:LEFT与LEFTB、RIGHT与RIGHTB、LEN与LENB、MID与MIDB、REPLACE与REPLACEB、SEARCH与SEARCHB的关系也如是。即不带字母B的函数是按字符操作的,而带字母B的函数是按字节进行操作的。
我们在编辑、修改、计算工作簿数据时,经常会用到许多汉字字符,如果使用以上带字母B的函数对汉字字符进行操作,就会很方便。
我们在编辑、修改、计算工作簿数据时,经常会用到许多汉字字符,如果使用以上带字母B的函数对汉字字符进行操作,就会很方便。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论