一张三千行的订单表,想取订单号横杠后面那一段,Ctrl+F 一个个跳,找到第十个就烦了。
Excel 里的 find 有两层意思:一是查找对话框,二是 FIND 函数。一个帮你定位,一个帮你算位置,混着用容易白费劲。
Ctrl+F 里三个有用的开关
点「选项」展开:范围可以选工作表或工作簿;「查找全部」把命中项列在下方,点一行就跳过去;「单元格匹配」只找完全一样的单元格,「区分大小写」只对英文有效。明明有值却搜不到,把查找范围从公式改成值试试。
Ctrl+H 是同一个对话框的替换标签,规则一样。批量替换前先点「查找全部」看一眼命中数量,几千行里误替换一次,撤销都不一定救得回来。查找对话框还能按格式找,比如只找加粗或填充色的单元格;内容留空、只选格式,就能把带该格式的格子全列出来。
FIND 函数返回的是位置
=FIND(B1,A2)B1 里放要查找的字符,这个例子返回它在 A2 里排第几个,找不到就返回 #VALUE!。第三个参数是起点,=FIND(B1,A2,5) 表示从第 5 个字符往后找。它区分大小写,也不认通配符。公式里要直接写字符时,得用英文引号包起来,中文引号不认。
要模糊匹配换 SEARCH
SEARCH 不区分大小写,支持问号和星号通配。想把横杠后面的内容截出来,常见写法是 =MID(A2,FIND(B1,A2)+1,99),长度给大一点不影响结果。外面再套一层 IFERROR,找不到时返回空串,表格看起来干净。
几千行公式往下拖之前,先把 B1 改成绝对引用 $B$1,不然拖到下一行就跟着错位。FIND 不认星号,想找所有以 A 开头的编号,得用 SEARCH 或 LEFT 判断。
两个函数都找不到怎么办
先确认单元格里是不是有多余空格,用 LEN 看长度;再确认查找内容里有没有全角字符。数字被存成文本时,FIND 找数字会失手,先统一格式。FIND 和 FINDB 的区别在于后者按字节算,处理中文时结果会不一样,平时用 FIND 就行。
判断:只是看一眼在哪,Ctrl+F 加查找全部足够;要批量拆字段、做条件判断,就写 FIND 或 SEARCH。