SEARCH
特定の文字またはテキスト文字列が最初に見つかった文字の番号を返します。左から右に読み取ります。 検索では大文字と小文字が区別され、アクセントが区別されます。
構文
SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
パラメーター
用語 | 定義 |
---|---|
find_text |
検索するテキスト。find_text では、ワイルドカード文字 (疑問符 (?) とアスタリスク (*) を使用できます。 疑問符は任意の 1 文字と一致します。アスタリスクは任意の文字シーケンスと一致します。 実際の疑問符またはアスタリスクを検索する場合は、文字の前にチルダ (~) を入力します。 |
within_text |
find_text を検索するテキスト、またはテキストを含む列。 |
start_num |
(省略可能)検索を開始する within_text の文字位置。 省略した場合は 1。 |
NotFoundValue |
(省略可能ですが、強くお勧めします)操作で一致する部分文字列 (通常は 0、-1、または BLANK( ) が見つからない場合に返される値。 指定しない場合は、エラーが返されます。 |
戻り値
2 番目のテキスト文字列の最初の文字からの最初のテキスト文字列の開始位置の番号。
解説
検索機能では大文字と小文字が区別されません。 "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 モデルのサンプルと共に使用できます。 モデルを取得するには、サンプル モデル
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 | Position of 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 |