search函数与find函数的区别(查找匹配函数FIND和SEARCH的基本用法)

search函数与find函数的区别(查找匹配函数FIND和SEARCH的基本用法)(1)

一、EXCEL中FIND函数和SEARCH函数的用法

FIND函数区分大小写,不支持通配符

SEARCH 函数不区分大小写,支持通配符

有这样一个产品:

search函数与find函数的区别(查找匹配函数FIND和SEARCH的基本用法)(2)

注:文本 “KitchenAId 和 Stockwell”内有空格

现在我们看这两个函数的用法:

1.FIND(find_text,within_text, [start_num])

search函数与find函数的区别(查找匹配函数FIND和SEARCH的基本用法)(3)

注意:FIND 始终返回从 within_text 的起始位置计算的字符编号,如果 start_num 大于 1,则会对跳过的字符计数。

示例:

(1) FIND("k",A2)

该公式 从单元格 A2开始查找第一个“k”的位置,返回18

(2) FIND("en?",A2)

该公式 从单元格查找前两个字符为“en”,由三个字符组成的字符串,第一次出现的位置,返回错误 #VALUE!

2.SEARCH(find_text,within_text,[start_num])

search函数与find函数的区别(查找匹配函数FIND和SEARCH的基本用法)(4)

示例:

(1) SEARCH("k",A2)

该公式 从单元格 A2开始查找第一个“k”的位置,返回1

(2) SEARCH("en?",A2)

该公式 从单元格查找前两个字符为“en”,由三个字符组成的字符串,第一次出现的位置,返回 6

二、PowerBI中FIND函数和SEARCH函数的用法

在PowerQuery和PBIDesktop里有相同行为的函数,小编这里分别演示:

1、 PowerQuery中M语言的Text类函数

Text类函数可以分为判断、选择、操作、查看等几个类型的函数,这里介绍一个字符串判断类函数Text.Contains:

Text.Contains(textas nullable text, substring as text, optional comparer asnullable function) as nullable logical

语义:判断文本 text 是否包含文本 substring。返回布尔值。

search函数与find函数的区别(查找匹配函数FIND和SEARCH的基本用法)(5)

示例:

我们将上面的产品名称复制到PowerQuery中,通过“添加列”选项卡下的“自定义列”功能,新建两个新列,分别为“自定义1”列和“自定义2”列,查看编辑器返回的结果:

search函数与find函数的区别(查找匹配函数FIND和SEARCH的基本用法)(6)

可以看到:

Text.Contains([产品名称],"s")返回的结果是FALSE

Text.Contains([产品名称],"S")返回的结果是TRUE

2、PowerBIDesktop中DAX函数的查找匹配函数

DAX函数中查找匹配类函数有FIND、SEARCH、LOOKVALUE、CONTAINS、TREATAS、IN等。

今天介绍两个简单函数FINDSEARCH,PowerBI中这两个函数的行为和EXCEL中的行为一致。在语法上,比EXCEL中多一个第四参数,这个参数一般不可省略。

(1) FIND函数

EN语法:

FIND( FindText, WithinText, [StartPosition], [NotFoundValue] )

CN语法:

FIND( 要查找的文本[FL1] ,包含“要查找的文本”的文本[FL2] ,[指定在WithinText中开始搜索的位置],[指定找不到文本时返回的数值[FL3] ] )

语义:返回一个文本字符串(FindText)在另一个文本字符串(WithinText)内的起始位置。FIND区分大小写。

返回:要查找的文本字符串起点的数字。

(2) SEARCH函数

EN语法

SEARCH( FindText[FL4] , WithinText,[StartPosition], [NotFoundValue] )

CN语法

SEARCH( 要查找的文本,包含要查找文本的文本,[开始查找位置],[找不到文本时返回的数值] )

语义:返回一个文本字符串(FindText)在另一个文本字符串(WithinText)内的起始位置。SEARCH不区分大小写。

示例:

我们把产品名称放在PBI中,新建两个精确匹配的度量值

"k"的位置_FIND =FIND("k","KitchenAId 和Stockwell",,0)

"k"的位置_SEARCH =SEARCH("K","KitchenAId 和Stockwell",,0)

在报表窗口,我们可以看到,和EXCEL中返回的结果一致。

search函数与find函数的区别(查找匹配函数FIND和SEARCH的基本用法)(7)

同时我们新建两个模糊匹配的度量值:

"k"的位置_FIND_模糊匹配 = FIND("en?","KitchenAId 和Stockwell",,0)

"k"的位置_SEARCH_模糊匹配 = SEARCH("en?","KitchenAId 和Stockwell",,0)

可以看到,和EXECL里的结果一样。因为我们这里指定了第四参数,所以FIND的返回结果为0。

search函数与find函数的区别(查找匹配函数FIND和SEARCH的基本用法)(8)

三、小编想说

无论是在EXCEL和PBI中,还是在PowerQuery和PowerBIDesktop中,会有很多相同行为的函数。EXCEL里支持的通配符和PBI中SEARCH函数所支持的通配符相同:

问号“?”,代表任意一个字符

星号“*”,代表任意多个字符

注意一定要在英文状态下输入哦!

本期内容就是这些,小伙伴们下期再见!

* PowerPivot工坊原创文章,转载请注明出处!


延伸阅读:

使用DAX控制切片器显示

DAX驱动可视化——使用DAX自定义KPI图

Power BI可视化 | 自定义可视化页面主题

一文了解Power BI中DAX公式编辑器的常用快捷键

利用DAX实现动态显示图表标题


如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。

search函数与find函数的区别(查找匹配函数FIND和SEARCH的基本用法)(9)


长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~

search函数与find函数的区别(查找匹配函数FIND和SEARCH的基本用法)(10)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页