[FIND]
文字列が他の文字列内で最初に現れる位置を検索します。 FIND では大文字と小文字は区別されます。
FIND(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
用語 | 定義 |
---|---|
find_text | 検索する文字列。 within_text 内の先頭文字と一致させる場合は、空文字列 ("") を使用します。 |
within_text | 検索文字列を含む文字列。 |
start_num | (省略可能) 検索を開始する文字。省略した場合、start_num = 1 となります。 within_text 内の先頭文字は、文字番号 1 です。 |
NotFoundValue | (省略可能だが、強く推奨されます) 操作で一致する部分文字列が見つからない場合に返される値。通常は 0、-1、または BLANK() です。 指定しない場合は、エラーが返されます。 |
検索する文字列の開始位置を示す数値。
Microsoft Excel には、1 バイト文字セット (SBCS) 言語と 2 バイト文字セット (DBCS) 言語に対応するため複数のバージョンの FIND 関数がありますが、DAX では Unicode が使用され、各文字が同じようにカウントされます。そのため、文字の種類によって異なるバージョンを使用する必要はありません。
この関数は、計算列または行レベルのセキュリティ (RLS) ルールで使用される場合、DirectQuery モードでの使用はサポートされません。
FIND では、ワイルドカードはサポートされません。 ワイルドカードを使用するには、SEARCH を使用します。
次の DAX クエリでは、リセラーの名前が含まれる文字列から、"Bike" の最初の文字の位置が検索されます。 見つからない場合は、Blank が返されます。
なお、FIND では大文字と小文字が区別されます。 この例では、"bike" を <find_text> 引数に使用した場合は、結果は返されません。 大文字と小文字を区別しない場合は、SEARCH を使用します。
この記事の例は、Adventure Works DW 2020 Power BI Desktop のサンプル モデルで使用できます。 モデルを取得するには、「DAX サンプル モデル」を参照してください。
EVALUATE
CALCULATETABLE (
ADDCOLUMNS (
TOPN ( 10, SUMMARIZE('Reseller', [Reseller], [Business Type])),
"Position of Bike", FIND ( "Bike", 'Reseller'[Reseller], 1, BLANK () )
),
'Reseller'[Business Type] IN { "Specialty Bike Shop", "Value Added Reseller", "Warehouse"}
)
次が返されます。
Reseller | Business Type | Position of Bike |
---|---|---|
Volume Bike Sellers | Warehouse | 8 |
Mass Market Bikes | Value Added Reseller | 13 |
Twin Cycles | Value Added Reseller | |
Rich Department Store | Warehouse | |
Rental Gallery | Specialty Bike Shop | |
Budget Toy Store | Warehouse | |
Global Sports Outlet | Warehouse | |
Online Bike Catalog | Warehouse | 8 |
Helmets and Cycles | Value Added Reseller | |
Jumbo Bikes | Specialty Bike Shop | 7 |