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

SEARCH 文本函数