次の方法で共有


SEARCH 関数 (DAX)

特定の文字またはテキスト文字列が最初に見つかった位置までの文字数を左から右に数えて返します。SEARCH では大文字と小文字が区別されます。

構文

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

パラメーター

項目

定義

find_text

検索するテキスト。

within_text

find_text を検索する対象のテキスト、またはテキストが含まれている列。

start_num

(省略可能) 検索を開始する within_text 内の文字の位置。省略した場合は 1。

プロパティ値/戻り値

1 つ目のテキスト文字列の開始位置 (2 つ目のテキスト文字列の先頭から数えた文字数)。

説明

この関数を使用すると、1 つ目のテキスト文字列を 2 つ目のテキスト文字列内で検索し、1 つ目の文字列の開始位置を返すことができます。

SEARCH 関数を使用すると、別の文字列内の文字やテキスト文字列の位置を判別し、MID 関数を使用してテキストを返すことも、REPLACE 関数を使用してテキストを変更することもできます。

find_text が within_text 内に見つからない場合は、エラーが返されます。この動作は Excel と似ていて、部分文字列が見つからない場合に #VALUE を返します。within_text が NULL の場合、このコンテキストでは空の文字列として解釈されます。

例: 文字列内の検索

説明

次の式は、"printer" という単語内で英字 "n" の位置を見つけます。

コード

=SEARCH("n","printer")

備考

"n" は "printer" という単語の 4 番目の文字であるため、この式は 4 を返します。

例: 列内の検索

説明

SEARCH の引数として列参照を使用できます。次の数式は、[PostalCode] 列内で文字 "-" (ハイフン) の位置を見つけます。

コード

=SEARCH("-",[PostalCode])

備考

返される結果は、ハイフンのインデックス位置を示す数値列です。

例: SEARCH によるエラー処理

説明

前の例の数式は、基になる列のすべての行に検索文字列が見つからない場合に失敗します。そのため、次の例では、すべての行について有効な結果が返されるように、SEARCH 関数と共に IFERROR を使用する方法を示しています。

次の式は、列内で文字 "-" の位置を見つけ、文字列が見つからない場合は -1 を返します。

コード

= IFERROR(SEARCH("-",[PostalCode]),-1)

備考

エラー出力として使用する値のデータ型が、エラー以外の出力のデータ型と一致する必要があることに注意してください。この場合、SEARCH は整数値を返すため、エラーが発生した場合に出力する数値を指定します。

ただし、IFERROR の 2 番目の引数として BLANK() を使用することで、空白 (空の文字列) を返すこともできます。

関連項目

参照

その他の技術情報