1. 概述
类别 | 描述 |
---|---|
函数写法 | FIND(find_text,within_text,start_num) |
函数作用 | 从指定的索引 start_num 处开始,返回第一次出现的指定子字符串 find_text 在此字符串 within_text 中的索引 |
参数说明 | find_text:需要查找的文本 within_text:包含需要查找文本 start_num:非必填项,从字符串哪个位置开始查找,within_text 里的索引从 1 开始,如果省略 start_num,则假设值为 1 |
参数个数 | 2 或 3(第三个参数可缺省,如果需要,必须为数值格式) |
参数类型 | 文本,文本,数值 |
返回值类型 | 数值 |
备注 | 如果 find_text 不在 within_text 中,FIND 函数返回值为 #VALUE! 如果 start_num 不大于 0,FIND 函数返回错误信息 #VALUE! 如果 start_num 大于 within_text 的长度,FIND 函数返回错误信息 #VALUE! 如果 find_text 是空白文本,FIND 函数将在搜索串中匹配第一个字符(即编号为 start_num 或 1 的字符) |
下表中有一些简单的示例:
公式 | 结果 |
---|---|
FIND("I","Information") | 1 |
FIND("i","Information") | 9 |
FIND("o","Information",2) | 4 |
FIND("o","Information",12) | #VALUE! |
FIND("o","Information",-1) | #VALUE! |
注意:FIND("o","Information",2)这个例子,表示从第 2 个位置开始查字母 o,但不决定最终输出的字母位置,o 还是排在第 4 位。下面的例子中将会用实际场景再次说明。
2. 示例
例如有订单明细表,订单来源的字段值是各个网站的产品链接,想要先截取链接的前面一部分,比较各网站已售卖的订单数。
2.1 FIND 函数返回“/”所在位置
1)需要截图的内容为红框中斜杠及之前的内容,所以需要用到 FIND 函数返回“/”所在位置,如下图所示:
2)公式为:FIND("/",订单来源,9) ,第 3 个参数要保证从“//”之后开始数,也可以是 10。这样第一个“/”的位置就是从“//”之后开始查,但最终输出的数值是从字母“h”开始计算的。
2.2 LEFT 函数截取字符串
在 2.1 节中已经得到了“/”的位置数,下面就要截取前面多少位字符。比如第一行数据中的“/”是在 25 位,就要截取前面 25 为的数值。
用 LEFT 函数写公式:LEFT(订单来源,FIND("/",订单来源,10)) ,根据 FIND 函数的计算值截图前多少位字符,如下图所示: