FIND
返回另一个文本字符串中一个文本字符串的起始位置。 FIND 区分大小写。
语法
FIND(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
参数
术语 | 定义 |
---|---|
find_text |
要查找的文本。 使用双引号(空文本)匹配 within_text 中的第一个字符。 |
within_text |
包含要查找的文本的文本。 |
start_num |
(可选)开始搜索的字符;如果省略,start_num = 1。
within_text 中的第一个字符是字符号 1。 |
NotFoundValue |
(可选,但强烈建议)当操作找不到匹配的子字符串(通常为 0、-1 或 BLANK()时应返回的值。 如果未指定,则返回错误。 |
返回值
显示要查找的文本字符串的起始点的数字。
言论
而Microsoft Excel 具有多个版本的 FIND 函数来容纳单字节字符集(SBCS)和双字节字符集(DBCS)语言,DAX 使用 Unicode 并按相同方式计算每个字符:因此,无需根据字符类型使用不同的版本。
在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
FIND 不支持通配符。 若要使用通配符,请使用 SEARCH。
例
以下 DAX 查询查找包含经销商名称的字符串中“Bike”的第一个字母的位置。 如果未找到,则返回空白。
请记住,FIND 区分大小写。 在此示例中,如果在 find_text
参数中使用了“bike”,则不会返回任何结果。 对于不区分大小写,请使用 SEARCH。
本文中的示例可用于示例 Adventure Works DW 2020 Power BI Desktop 模型。 若要获取模型,请参阅 DAX 示例模型。
EVALUATE
CALCULATETABLE (
ADDCOLUMNS (
TOPN ( 10, SUMMARIZE('Reseller', [Reseller], [Business Type])),
"Position of Bike", FIND ( "Bike", 'Reseller'[Reseller], 1, BLANK () )
),
'Reseller'[Business Type] IN { "Specialty Bike Shop", "Value Added Reseller", "Warehouse"}
)
返回
经销商 | 业务类型 | 自行车的位置 |
---|---|---|
批量自行车卖家 | 仓库 | 8 |
大众市场自行车 | 增值经销商 | 13 |
孪生周期 | 增值经销商 | |
富百货公司 | 仓库 | |
租赁库 | 专业自行车店 | |
预算玩具商店 | 仓库 | |
全球体育网点 | 仓库 | |
联机自行车目录 | 仓库 | 8 |
头盔和周期 | 增值经销商 | |
巨无霸自行车 | 专业自行车店 | 7 |