FIND

适用于:计算列计算表度量值视觉对象计算

返回一个文本字符串在另一个文本字符串中的起始位置。 FIND 区分大小写。

语法

DAX
FIND(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])  

parameters

术语 定义
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”的第一个字母的位置。 如果未找到,则返回 Blank。

请记住,使用 FIND 会区分大小写。 此示例中,如果在 <find_text> 参数中使用了“bike”,则不返回任何结果。 若不区分大小写,请使用 SEARCH

可将本文中的示例与 Adventure Works DW 2020 示例模型结合使用。 若要获取模型,请参阅 DAX 示例模型

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"}
)

返回:

Reseller Business Type Bike 所在的位置
Volume Bike Sellers Warehouse 8
Mass Market Bikes Value Added Reseller 13
Twin Cycles Value Added Reseller
Rich Department Store Warehouse
Rental Gallery Specialty Bike Shop
Budget Toy Store Warehouse
Global Sports Outlet Warehouse
Online Bike Catalog Warehouse 8
Helmets and Cycles Value Added Reseller
Jumbo Bikes Specialty Bike Shop 7

SEARCH
文本函数