SEARCH

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

返回首先找到特定字符或文本字符串的字符数,从左到右读取。 搜索不区分大小写且区分重音。

语法

SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])

parameters

术语 定义
find_text 要查找的文本。

可以在 find_text中使用通配符(问号(?)和星号 • 。 问号匹配任何单个字符;星号匹配任何字符序列。 如果要查找实际的问号或星号,请在字符前键入波形符(~)。
within_text 要在其中搜索 find_text的文本,或包含文本的列。
start_num (可选)要开始搜索的 within_text 中的字符位置。 如果省略,则为 1。
NotFoundValue (可选,但强烈建议)当操作找不到匹配的子字符串(通常为 0、-1 或 BLANK()时应返回的值。 如果未指定,则返回错误。

返回值

第一个文本字符串从第二个文本字符串的第一个字符开始位置的数目。

备注

  • 搜索函数不区分大小写。 搜索“N”将找到“N”或“n”的第一个匹配项。

  • 搜索函数区分重音。 搜索“á”将找到“á”的第一个匹配项,但没有出现“a”、“à”或大写版本“A”、“Á”。。

  • 可以使用 SEARCH 函数来确定字符或文本字符串在另一个文本字符串中的位置,然后使用 MID 函数返回文本,或使用 REPLACE 函数更改文本。

  • 如果在 within_text中找不到 find_text,公式将返回错误。 此行为类似于 Excel,如果找不到子字符串,则返回 #VALUE。 within_text 中的 null 值将解释为此上下文中的空字符串。

  • 在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。

示例

以下 DAX 查询查找包含经销商名称的字符串中“cycle”的第一个字母的位置。 如果未找到,则返回空白。

SEARCH 不区分大小写。 在此示例中,如果在 find_text 参数中使用了“cycle”或“Cycle”,则为任一情况返回结果。 对区分大小写使用 FIND

本文中的示例可用于示例 Adventure Works DW 2020 Power BI Desktop 模型。 若要获取模型,请参阅 DAX 示例模型

EVALUATE
CALCULATETABLE (
    ADDCOLUMNS (
        TOPN ( 10, SUMMARIZE('Reseller', [Reseller], [Business Type])),
        "Position of cycle", SEARCH ( "cycle", 'Reseller'[Reseller], 1, BLANK () )
    ),
    'Reseller'[Business Type] IN { "Specialty Bike Shop", "Value Added Reseller", "Warehouse"}
)

返回:

Reseller Business Type cycle 所在的位置
Volume Bike Sellers Warehouse
Mass Market Bikes 增值经销商
Twin Cycles 增值经销商 6
Rich Department Store Warehouse
Rental Gallery Specialty Bike Shop
Budget Toy Store Warehouse
Global Sports Outlet Warehouse
Online Bike Catalog Warehouse
头盔和周期 增值经销商 13
Jumbo Bikes Specialty Bike Shop

FIND REPLACE 文本函数