查找匹配函数 FIND 和 SEARCH 的基本用法
一、Excel中FIND函数和SEARCH函数的用法
FIND函数区分大小写,不支持通配符
SEARCH 函数不区分大小写,支持通配符
有这样一个产品:
注:文本 “KitchenAId 和 Stockwell”内有空格
现在我们看这两个函数的用法:
1.FIND(find_text,within_text, [start_num])
注意: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])
示例:
(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。返回布尔值。
示例:
我们将上面的产品名称复制到PowerQuery中,通过“添加列”选项卡下的“自定义列”功能,新建两个新列,分别为“自定义1”列和“自定义2”列,查看编辑器返回的结果:
可以看到:
Text.Contains([产品名称],"s")返回的结果是FALSE
Text.Contains([产品名称],"S")返回的结果是TRUE
2、PowerBIDesktop中DAX函数的查找匹配函数
DAX函数中查找匹配类函数有FIND、SEARCH、LOOKVALUE、CONTAINS、TREATAS、IN等。
今天介绍两个简单函数FIND和SEARCH,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中返回的结果一致。
同时我们新建两个模糊匹配的度量值:
"k"的位置_FIND_模糊匹配 = FIND("en?","KitchenAId 和Stockwell",,0)
"k"的位置_SEARCH_模糊匹配 = SEARCH("en?","KitchenAId 和Stockwell",,0)
可以看到,和EXECL里的结果一样。因为我们这里指定了第四参数,所以FIND的返回结果为0。
三、小编想说
无论是在EXCEL和PBI中,还是在PowerQuery和PowerBIDesktop中,会有很多相同行为的函数。EXCEL里支持的通配符和PBI中SEARCH函数所支持的通配符相同:
问号“?”,代表任意一个字符
星号“*”,代表任意多个字符
注意一定要在英文状态下输入哦!
本期内容就是这些,小伙伴们下期再见!
-
PowerPivot工坊原创文章,转载请注明出处!
如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。
长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~
Power Pivot工坊
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)