FIND、FINDB 函数
本文介绍 Microsoft Excel 中
说明
函数 FIND 和 FINDB 用于在第二个文本串中定位第一个文本串,并返回第一个文本串的起始位置的值,该值从第二个文本串的第一个字符算起。
·
·
支持 DBCS 的语言包括日语、中文(简体)、中文(繁体)以及朝鲜语。
语法
FIND(find_text, within_text, [start_num])
FINDB(find_text, within_text, [start_num])
FIND 和 FINDB 函数语法具有下列参数:
·
·
·
说明
·
·
·
·
·
·
·
复制下表中的示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 要使公式显示结果,请选中它们,按 F2,然后按 Enter。 如果需要,可调整列宽以查看所有数据。
数据 | ||
Miriam | ||
公式 | 说明 | 结果 |
=FIND("M",A2) | 单元格 A2 中第一个“M”的位置 | 1 |
=FIND("m",A2) | 单元格 A2 中第一个“M”的位置 | 6 |
=FIND("M",A2,3) | 从单元格 A2 的第三个字符开始查找第一个“M”的位置 | 8 |
示例 2
数据 | ||
Ceramic Insulators #124-TD45-87 | ||
Copper Coils #12-671-6772 | ||
Variable Resistors #116010 | ||
公式 | 说明(结果) | 结果 |
=MID(A2,1,FIND(" #",A2,1)-1) | 提取单元格 A2 中从第一个字符到“#”的文本 (Ceramic Insulators) | Ceramic Insulators |
=MID(A3,1,FIND(" #",A3,1)-1) | 提取单元格 A3 中从第一个字符到“#”的文本 (Copper Coils) | Copper Coils |
=MID(A4,1,FIND(" #",A4,1)-1) | 提取单元格 A4 中从第一个字符到“#”的文本 (Variable Resistors) | Variable Resistors |
SEARCH 函数 (DAX)
返回最先找到特定字符或文本字符串的位置的字符编号(从左向右算起)。搜索不区分大小写,但区分重音。
本文介绍数据分析表达式 (DAX) 中的一个函数,DAX 是一种在 Excel 中定义PowerPivot 计算的公式表达式语言。很多DAX 函数具有与Excel 函数相同的名称和相似的行为,但是DAX 函数只能在DAX 公式中使用。
·
·
·
·
·
语法
SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
参数
项 | 定义 |
find_text | 要查找的文本。 可以在 |
within_text | 要在其中搜索 |
start_num | (可选)要在 |
返回值
第一个文本字符串在第二个文本字符串中从第一个字符算起的起始位置编号。
备注
1.
2.
3.
4.
5.
在用于在DirectQuery 模式下部署然后查询的模型中时,此DAX 函数可返回不同的结果。有关DirectQuery 模式中的语义差异的详细信息,请参阅[[REMOVED FWLINK 219171 TO MSDN]]。
示例:在字符串内搜索
说明
下面的公式查找字母“n”在单词“printer”中的位置。
代码
=SEARCH("n","printer")
注释
该公式将返回4,因为“n”是单词“printer”中的第四个字符。
示例:在列内搜索
说明
您可以使用列引用作为SEARCH 的参数。下面的公式查找字符“-”(连字符)在列[PostalCode] 中的位置。
代码
=SEARCH("-",[PostalCode])
注释
返回结果是一个数字列,指示连字符的索引位置。
示例:针对 SEARCH 的错误处理
说明
如果在源列的每一行中都找不到搜索字符串,则前面示例中的公式将失败。因此,下一个示例将说明如何将IFERROR 与SEARCH 函数一起使用,以便确保为每一行都返回有效结果。
下面的公式查找字符“-”在列中的位置,并且找不到该字符串则返回-1。
代码
= IFERROR(SEARCH("-",[PostalCode]),-1)
注释
请注意,您用作错误输出的值的数据类型必须匹配非错误输出类型的数据类型。在此情况下,您提供在出现错误时要输出的数值,因为SEARCH 将返回整数值。
但是,您还可以通过使用BLANK() 作为IFERROR 的第二个参数,返回空白(空字符串)。