Excel Find函数和FindB函数使用方法的10个实例,含与If或Sum组合实现动态查找或一次查找多个值

亮术网 2019-09-28 本网原创

在 Excel 中,Find函数用于查找指定文本在查找文本的文本中的位置,FindB函数与Find函数功能一样,只是Find函数把全角字符(如汉字)和半角字符(如数字和字母)都算一个字符,而FindB函数以字节计,把全角字符计作两个字节、半角字符计作一个字节。

在日常应用中,Find函数和FindB函数常与 If、Sum、Mid、Left、IsNumber 等函数组合使用,如 Mid + Find(或 FindB)组合实现从任意指定字符开始截取字符,If + IsNumber + Find 组合实现动态查找,Sum + IsNumber + Find 组合实现一次查找多个值。

 

一、Excel Find函数和FindB函数的语法

1、Find函数表达式:FIND(Find_Text, Within_Text, [Start_Num])

中文表达式:FIND(查找文本, 要查找文本的文本, [查找开始位置])

 

2、FindB函数表达式:FINDB(Find_Text, Within_Text, [Start_Num])

中文表达式:FINDB(查找文本, 要查找文本的文本, [查找开始位置])

 

3、说明:

A、Find函数将全角字符(如汉字)和半角字符(如数字与字母)都计作一个字符,FindB函数将全角字符计作两个字节、半角字符计作一个字节。Find函数和FindB函数都区分大小写,并且不允许使用通配符;如果要求忽略大小写与允许使用通配符,只能使用Search函数或SearchB函数。

B、如果 Find_Text 为空文本 (""),默认返回第一个字符的位置 1;Find_Text 不能包含任何通配符,如问号(?)或星号(*)。

C、Start_Num 为可选项,若省略,则默认从第一个字符开始查找;Start_Num 小于等于 0 或大于等于 Within_Text 的长度,Find 与 FindB 都返回值错误 #VALUE!。

D、若在 Within_Text 中没有找到查找文本,也返回值错误 #VALUE!。

 

 

二、Excel Find函数的使用方法及实例

(一)查找短文本省略查找开始位置的实例

1、假如要查找 Kg 在“2685kg”中位置。双击 E2 单元格,把公式 =FIND("kg",D2) 复制到 E2,按回车,返回 5;再次双击 E2,在 D2 后输入逗号,按回车,返回值错误 #VALUE!;操作过程步骤,如图1所示:

Excel Find函数的使用方法及实例

图1

2、公式 =FIND("kg",D2) 中,"kg" 为查找文本,D2 为要查找文本的文本,公式省略了最后一个参数“查找开始位置”,则默认从第一个字会开始查找。另外,公式 =FIND("kg",D2,) 返回值错误,说明省略“查找开始位置参数”时,不能在第二个参数后加逗号。

 

(二)区分大小写与不允许使用通配符的实例

1、假如要查找“Excel 教程”中的大小写 e。双击 B1 单元格,把公式 =FIND("E",A1) 复制到 B1,按回车,返回 1;双击 B2,把公式 =FIND("E",A1) 复制到 B2 后,把大写 E 改为小写 e,按回车,返回 4;再次双击 B2,在 e 后输入 *,按回车,返回值错误 #VALUE!;操作过程步骤,如图2所示:

Excel Find函数区分大小写与不允许使用通配符的实例

图2

2、公式说明:

A、=FIND("E",A1) 返回大写 E 的位置 1,而公式 =FIND("e",A1) 返回小写 e 的位置 4,说明Find函数区分大小写,否则两个公式都返回 1。

B、公式 =FIND("e*",A1) 的查找文本 "e*" 含有通配符 *,它返回值错误 #VALUE!,说明Find函数不能使用通配符。

 

(三)查找文本为空("")和空格(" ")的实例

1、双击 B1 单元格,把公式 =FIND("",A1) 复制到 B1,按回车,返回 1;双击 B1,把 "" 改为 " ",按回车,返回 6;操作过程步骤,如图3所示:

Excel Find函数查找文本为空和空格

图3

2、公式 =FIND("",A1) 查找空(""),Find函数默认返回第一个字符的位置 1;公式 =FIND(" ",A1) 查找空格,返回“Excel 教程”中空格的位置 6。

 

(四)返回值错误 #VALUE! 的实例

1、双击 B1 单元格,把公式 =FIND("c",A1,0) 复制到 B1,按回车,返回值错误 #VALUE!;再次双击 B1,把 0 改为 8,按回车,也返回 值错误 #VALUE!;操作过程步骤,如图4所示:

Excel Find函数返回值错误 #VALUE! 的实例

图4

2、公式说明:

A、公式 =FIND("c",A1,0) 的查找开始位置为 0,但返回错误,说明Find函数的查找起始位置从 1 开始。

B、公式 =FIND("c",A1,8) 的查找起始位置为 8,而 A1 中的“Excel 教程”,只有 8 个字符,公式从第 8 个位置开始是查找第 9 个字符及之后的字符,因此返回错误。

 

(五)找不到查找文本返回错误及处理方法实例

1、双击 B1 单元格,把公式 =FIND("a",A1,1) 复制到 B1,按回车,返回值错误 #VALUE!;再次双击 B1,把公式改为 =IFERROR(FIND("a",A1,1),0),按回车,返回 0;操作过程步骤,如图5所示:

Excel Find函数找不到查找文本返回错误及处理方法实例

图5

2、公式说明:

A、公式 =FIND("a",A1,1) 要在“Excel 教程”中从第一个字符开始查找 a,但没有找到,因此返回错误。

B、公式 =IFERROR(FIND("a",A1,1),0) 中,IfError函数是错误判断函数,意思是:如果 FIND("a",A1,1) 返回正确的位置,则 IfError 返回该值,否则返回 0。

 

 

三、Excel FindB函数的使用方法及实例

(一)在由数字和字母组成的字符串中查找的实例

1、双击 B1 单元格,把公式 =FINDB("0",A1,6) 复制到 B1,按回车,返回 8;操作过程步骤,如图6所示:

Excel FindB函数在由数字和字母组成的字符串中查找的实例

图6

2、公式 =FINDB("0",A1,6) 中,0 为查找文本,A1 为查找 0 的文本,6 为查找开始位置;公式的意思是:从 A1 中的“Excel 2016”中的第 6 个字符开始查找 0,返回 0 的位置为 8;从返回位置可知,FindB函数与Find函数一样,都把数字和字母计作一个字节。

 

(二)在由数字、字母和汉字组成的字符串中查找的实例

1、双击 B1 单元格,把公式 =FINDB("16",A1) 复制到 B1,按回车,返回 14;操作过程步骤,如图7所示:

Excel FindB函数在由数字、字母和汉字组成的字符串中查找的实例

图7

2、公式 =FINDB("16",A1) 在 A1 的“Excel 教程 2016”中查找 16,返回结果为 14,它正是 1 的位置;1 的前面共有 5 个字母、2 个空格、2 个数字和 2 个汉字,它们加起来为 11,说明 FindB 把每个汉字计作两个字节。

 

 

四、Excel Find函数和FindB函数的应用实例

(一)Mid + Find函数组合实现从任意指定字符开始截取字符串

1、假如要截取“WS-560长袖白衬衫86.9”中的汉字。双击 B1 单元格,把公式 =MID(A1,FIND("长",A1),5) 复制到 B1,按回车,返回“长袖白衬衫”;操作过程步骤,如图8所示:

Excel Mid + Find函数组合实现从任意指定字符开始截取字符串

图8

 

2、公式 =MID(A1,FIND("长",A1),5) 说明:

A、FIND("长",A1) 用于在 A1 中查找“长”的位置,结果为 7;在比较长的字符串中截取时,通常用Find函数确定要截取字符串的开始位置,这样能快速找出查找起始位置,不用一个个去数。

B、则公式变为 =MID(A1,7,5),A1 为要截取文本的文本,7 为开始截取位置,5 为截取长度,意思是:从第 7 个字符开始截取 5 字符,恰好截取得 A1 中的 5 个汉字。

提示:Mid + FindB 或 MidB + FindB 也可以实现同样功能,公式可以分别这样写:=MID(A1,FINDB("长",A1),5) 或 =MIDB(A1,FINDB("长",A1),10);后一个公式之所以写 10,是因为用 MidB 截取时,每个汉字占两个字节。

 

(二)If + IsNumber + Find函数组合实现在动态查找

1、假如要求标出 A 列是否包含 B 列的年份,如果包含标出“是”,否则标出“否”。双击 C2 单元格,把公式 =IF(ISNUMBER(FIND(B2,A2)),"是","否") 复制到 C2,按回车,返回“是”;选中 C2,把鼠标移到 C2 右下角的单元格填充柄上,鼠标变为加号后,双击左键,则标出剩余行的相应结果;操作过程步骤,如图9所示:

Excel If + IsNumber + Find函数组合实现在动态查找

图9

 

2、公式 =IF(ISNUMBER(FIND(B2,A2)),"是","否") 说明:

A、FIND(B2,A2) 用于在 A2 中查找 B2,如果找到,返回 B2 在 A2 中的位置,否则返回值错误 #VALUE!;当公式在 C2,返回 B2 在 A2 中的位置为 2。

B、则 ISNUMBER(FIND(B2,A2) 变为 ISNUMBER(2),由于 2 为数字,所以 IsNumber 返回“真”。则公式变为 =IF(TRUE,"是","否"),If 的条件为真,所以返回“是”。

C、当公式在 C3 时,A2 与 B2 都自动变为 A3 和 B3(相当于往下拖),FIND(B3,A3) 返回值错误 #VALUE!,因为在 A3 中没有找到 B3;ISNUMBER(#VALUE!) 返回“假”,则公式变为 =IF(FALSE,"是","否"),If 的条件为假,所以返回“否”。

 

(三)Sum + IsNumber + Find函数组合实现一次查找多个值

1、假如要一次查找 4 个值。双击 B1 单元格,把公式 =SUM(ISNUMBER(FIND({"S","衬衫",8,10},A1))*1) 复制到 B1,按回车,返回查找结果 3;操作过程步骤,如图10所示:

Excel Sum + IsNumber + Find函数组合实现一次查找多个值

图10

 

2、公式 =SUM(ISNUMBER(FIND({"S","衬衫",8,10},A1))*1) 说明:

A、FIND({"S","衬衫",8,10},A1) 的找查找文本为一个数组,数组中共包含四个元素,也就是要在 A1 中查找四个值;执行时,第一次取出数组中的第一个元素 S,然后在 A1 中查找,返回结果为 2;第二次取出数组中的第二个元素 “衬衫”,同样在 A1 中查找,结果为 10;其它的以此类推,最后返回数组 {2,10,12,#VALUE!},由于在 A1 中找不到 10,所以返回 #VALUE!。

B、则公式变为 =SUM(ISNUMBER({2,10,12,#VALUE!})*1),进一步计算用 IsNumber 判断数组中的元素是否为数字,如果是数字,返回 True,否则返回 False,则公式变为 =SUM({TRUE,TRUE,TRUE,FALSE}*1),再用数组中的每个元素与 1 相乘,相乘时,True 转为 1、False 转为 0,则公式变为 =SUM({1,1,1,0}),最后用 Sum 对数组中的每个元素求和,结果为 3。