函数周期表丨模糊匹配

2021-09-03 11:13:31 浏览数 (3)

CONTAINSSTRING函数

CONTAINSSTRINGEXACT函数

CONTAINSSTRING函数被微软划分为“信息”函数,属于“值函数”,根据判定结果返回TRUE或者FALSE。

CONTAINSSTRINGEXACT函数和其效果几乎是完全一样。

二者总体来说使用的方式差不多,一些细节的地方有些出入,都是用来检查字符是否被包含。

用途:可用于模糊匹配或者查询匹配。

原本白茶的计划是按照微软的函数划分对函数进行逐个的讲解, 但是在2020.9月底左右,微软修改了DAX函数的类别划分, 一度导致白茶的函数思路崩溃... 白茶思考了很久,决定摒弃掉之前的思路,按照函数的实际用途去阐述,总体风格会有细节上的变动。

语法

语法1:

代码语言:txt复制
DAX=CONTAINSSTRING(<within_text>, <find_text>)

语法2:

代码语言:txt复制
DAX=CONTAINSSTRINGEXACT(<within_text>, <find_text>)

参数

within_text:被查找的范围。

find_text:需要查找的文本内容。

返回结果

TRUE或者FALSE

区别: CONTAINSSTRING支持通配符,不区分大小写; CONTAINSSTRINGEXACP不支持通配符,区分大小写。

通配符规则

  • 问号(?):问号匹配任何单个字符
  • 星号(*):星号匹配任何字符序列
  • 如果你想找到的是问号或星号本身,请在字符前键入一个波浪号(~)

例子

例子1:

输入如下代码。

代码语言:txt复制
CONTAINSSTRING =
ROW (
    "例子1", CONTAINSSTRING ( "红橙黄绿", "橙黄" ),
    "例子2", CONTAINSSTRING ( "红橙黄绿", "橙绿" ),
    "例子3", CONTAINSSTRING ( "红橙黄绿", "橙*绿" ),
    "例子4", CONTAINSSTRING ( "红橙黄绿", "黑白" )
)

结果如下:

结果一目了然,根据查找内容决定输出结果。

例子2:

模拟数据:

这是白茶随机模拟的数据,之前的一期白茶使用过这个案例数据。

传送门:《销售需求丨查找问题》

在这个情境中,也可以使用本期的函数来进行单个颜色的模糊匹配。

代码1:

代码语言:txt复制
CONTAINSSTRING =
VAR SLL =
    VALUES ( '维度'[维度] )
VAR SQL =
    MAX ( '事实表'[颜色] )
RETURN
    IF ( CONTAINSSTRING ( SQL, SLL ), SQL )

代码2:

代码语言:txt复制
CONTAINSSTRINGEXACT =
VAR SLL =
    VALUES ( '维度'[维度] )
VAR SQL =
    MAX ( '事实表'[颜色] )
RETURN
    IF ( CONTAINSSTRINGEXACT ( SQL, SLL ), SQL )

其结果如下:

小伙伴们❤GET了么?

白茶会不定期的分享一些函数卡片

(文件在知识星球PowerBI丨需求圈)

这里是白茶,一个PowerBI的初学者。

0 人点赞