1、EXCEL 中 MID 和 FIND 函数的用法MID 既不从第一位开始截取,也不从最后一位开始截取,而是由用户自行指定开始的位置和字符的长度。因此,若用户指定从第一位开始,便和 Left 函数一样。 使用语法 MID(text,start_num,num_chars) Text 是包含要提取字符的文本字符串,可以直接输入含有目标文字的单元格名称。 Start_num 是文本中要提取的第一个字符的位置。文本中第一个字符的 start_num 为 1,以此类推。 Num_chars 指定希望 MID 从文本中返回字符的个数。 注意: 如果 start_num 大于文本长度,则 MID 返回空文本
2、 (“)。 如果 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 个字符,因此系统返回用户想截取的生日
3、时间“19851221”。 FIND 用来对原始数据中某个字符串进行定位,以确定其位置。因为该招进行定位时,总是从指定位置开始,返回找到的第一个匹配字符串的位置,而不管其后是否还有相匹配的字符串,有点像瞎子摸象,摸到哪就说哪,因此取名“瞎子摸象”。 使用语法 FIND(find_text,within_text,start_num) Find_text 是要查找的文本。 Within_text 是包含要查找文本的文本。 Start_num 指定开始进行查找的字符。within_text 中的首字符是编号为 1 的字符。如果忽略 start_num,则假设其为 1。 注意: 使用 start_n
4、um 可跳过指定数目的字符。例如,假定使用文本字符串“AYF0093.YoungMensApparel”,如果要查找文本字符串中说明部分的第一个“Y”的编号,则可将 start_num 设置为 8,这样就不会查找文本的序列号部分。FIND 将从第 8 个字符开始查找,而在下一个字符处即可找到 find_text,于是返回编号 9。FIND 总是从 within_text 的起始处返回字符编号,如果 start_num 大于 1,也会对跳过的字符进行计数。 如果 find_text 是空文本 (“),则 FIND 则会返回数值 1。 Find_text 中不能包含通配符。 如果 within_t
5、ext 中没有 find_text,则 FIND 返回错误值 #VALUE!。 如果 start_num 不大于 0,则 FIND 返回错误值 #VALUE!。 如果 start_num 大于 within_text 的长度,则 FIND 返回错误值 #VALUE!。 应用示例: 上图中,对含有不同地方的数据,利用“Find”函数,非常简单地确定了“省”出现的位置。 详细解释 公式“=FIND(“省“,A2)”中,“省”表示要查找的文本为“省”,(实际使用中,也可以很长的一串字符)。要找查找的对象是 A2 单元格的内容“广东省东莞市东城区”,因为没有指定起始位置,所以系统从第一位开始。返回的“
6、3”,表示“省“字在第三位。而“黑龙江省哈尔滨市”则返回 4。 与 Find 类似,Search 函数也有相同的功能。它们的区别是,Find 区分大小写,而 Search 不分大小写(当被查找的文本为英文时)。另外,在 Excel 中,对文本进行处理的很多函数都提供了一个特别用来处理双字节字符(如中文,日文)的函数,一般是在原函数后加“B”,如 FIND, 就有一个 FINDB。之前讲过的 LEFT,相对应的就是 LEFTB 等。其实,我们在实际应用中,使用不带“B”的函数就足够了。如果你想使用带“B”的函数,则要特别注意,尤其是在组合运用函数时,其中一个函数使用带“B”的形式,则其它有带“B”形式的函数,全部都要使用其带“B”的形式,否则结果极可能是错的。