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,如果找不到子字串,則 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 | 自行車的位置 |
---|---|---|
大量自行車銷售人員 | 倉庫 | |
大眾市場自行車 | Value Added Reseller | |
協力車 | Value Added Reseller | 6 |
Rich 百貨公司 | 倉庫 | |
租賃庫 | Specialty Bike Shop | |
平價玩具店 | 倉庫 | |
全球體育購物中心 | 倉庫 | |
線上自行車目錄 | 倉庫 | |
安全帽與機車 | Value Added Reseller | 13 |
巨無霸自行車 | Specialty Bike Shop |