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 番目のテキスト文字列の 1 文字目から、1 番目のテキスト文字列の開始位置までの文字数。
解説
search 関数では大文字と小文字が区別されません。 "N" を検索すると、最初に出現する 'N' または 'n' が検索されます。
search 関数ではアクセントが区別されます。 "á" を検索すると、'á' の最初の出現は検出されますが、'a'、'à'、または大文字バージョンの 'A'、'Á' の出現は検出されません。
SEARCH 関数を使用して、別のテキスト文字列内の 1 文字またはテキスト文字列の位置を確認してから、MID 関数を使用してテキストを返したり、REPLACE 関数を使用してテキストを変更したりすることができます。
find_text が within_text に見つからない場合、数式からはエラーが返されます。 この動作は、部分文字列が見つからない場合は #VALUE が返されるという Excel と似ています。 within_text の Null は、このコンテキストでは空の文字列として解釈されます。
この関数は、計算列または行レベルのセキュリティ (RLS) ルールで使用される場合、DirectQuery モードでの使用はサポートされません。
例
次の DAX クエリでは、リセラーの名前が含まれる文字列から、"cycle" の最初の文字の位置が検索されます。 見つからない場合は、Blank が返されます。
SEARCH では、大文字と小文字が区別されません。 この例では、"cycle" または "Cycle" のいずれが <find_text> 引数に使用されても、結果が返されます。 大文字と小文字を区別する場合は、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 | Position of cycle |
---|---|---|
Volume Bike Sellers | Warehouse | |
Mass Market Bikes | Value Added Reseller | |
Twin Cycles | Value Added Reseller | 6 |
Rich Department Store | Warehouse | |
Rental Gallery | Specialty Bike Shop | |
Budget Toy Store | Warehouse | |
Global Sports Outlet | Warehouse | |
Online Bike Catalog | Warehouse | |
Helmets and Cycles | Value Added Reseller | 13 |
Jumbo Bikes | Specialty Bike Shop |