共用方式為


SEARCH

適用於:匯出數據行計算數據表量值視覺計算

傳回第一次找到特定字元或文字字串的字元數,由左至右讀取。 搜尋不區分大小寫且區分腔調字。

語法

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

參數

詞彙 定義
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」 第一個字母的位置。 如果找不到,則會傳回 Blank。

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 自行車的位置
大量自行車銷售人員 倉庫
大眾市場自行車 增值轉銷商
協力車 增值轉銷商 6
Rich 百貨公司 倉庫
租賃庫 Specialty Bike Shop
平價玩具店 倉庫
全球體育購物中心 倉庫
線上自行車目錄 倉庫
頭盔和迴圈 增值轉銷商 13
巨無霸自行車 Specialty Bike Shop

FIND REPLACE 文字函式