ここでは、Microsoft Excel の SEARCH 関数の書式および使用法について説明します。
説明
SEARCH 関数は、2 番目のテキスト文字列内にある 1 つのテキスト文字列を見つけ、2 番目のテキスト文字列の最初の文字から最初のテキスト文字列の開始位置の番号を返します。 たとえば、"printer" という語で文字 "n" の位置を検索するには、次の関数を使用できます。
=SEARCH("n","printer")
"n" は "printer" という語で 4 番目の文字であるため、この関数は "4" を返します。
他の単語に含まれる単語を検索することもできます。 たとえば、次の関数は
=SEARCH("base","database")
"base" という単語は "database" という単語の 5 文字目から始まるため、 5 を返します。 SEARCH を使用して、別のテキスト文字列内の文字または文字列の位置を特定し、MID を使用してテキストを返したり、REPLACE を使用してテキストを変更したりできます。 これらの関数は、この記事の 例 1 で示します。
構文
SEARCH(検索文字列,対象,[開始位置])
SEARCH 関数には、次の引数があります。
- find_text 必須。 検索する文字列を指定します。
- within_text 必須。 find_text引数の値を検索するテキスト。
- start_num オプション。 検索を開始する within_text 引数の文字番号。
解説
- SEARCH 関数では大文字と小文字は区別されません。 大文字と小文字を区別する検索を実行する場合は、 FIND を使用できます。
- find_text 引数には、ワイルドカード文字の疑問符 (?) とアスタリスク (*) を使用できます。 ワイルドカード文字の疑問符は任意の 1 文字を表し、アスタリスクは 1 文字以上の任意の文字列を表します。 ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前にチルダ (~) を付けます。
- find_text の値が見つからない場合、#VALUE! が返されます。
- start_num引数を省略すると、1 と見なされます。
- start_num が 0 (ゼロ) 以下であるか、within_text引数の長さより大きい場合、#VALUE! が返されます。
- start_num を使用して、指定した文字数だけスキップします。 SEARCH 関数を例として使用すると、テキスト文字列 "AYF0093 を操作しているとします。YoungMensApparel". テキスト文字列の説明部分で最初の "Y" の位置を見つけるには、テキストのシリアル番号部分 (この場合は "AYF0093") が検索されないように、 start_num を 8 に設定します。 SEARCH 関数は、8 番目の文字の位置から検索操作を開始し、次の位置にある find_text 引数で指定された文字を検索し、数字 9 を返します。 SEARCH 関数は常に within_text 引数の先頭から文字数を返し、start_num引数が 1 より大きい場合はスキップする文字数をカウントします。
使用例
次の表のサンプル データをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。 数式を選択して、F2 キーを押し、さらに Enter キーを押すと、結果が表示されます。 必要に応じて、列幅を調整してすべてのデータを表示してください。
| データ | ||
|---|---|---|
| Statements | ||
| Profit Margin | ||
| 余白 | ||
| The "boss" is here. | ||
| 数式 | 説明 | 結果 |
| =SEARCH("e",A2,6) | 最初の文字列のうち、6 番目の文字以降に現れる最初の "e" の位置を調べます。 | 7 |
| =SEARCH(A4,A3) | "Profit Margin" (検索対象のセルは A3) という文字列から "margin" (検索対象の文字列はセル A4) の位置を調べます。 | 8 |
| =REPLACE(A3,SEARCH(A4,A3),6,"Amount") | セル A3 の "Margin" の位置を検索し、"Margin" を "Amount" に置き換えた後、その文字と次の 5 文字を "Amount" に置き換えます。 | Profit Amount |
| =MID(A3,SEARCH(" ",A3)+1,4) | "Profit Margin" (セル A3) で、最初のスペース文字に続く最初の 4 文字を返します。 | Marg |
| =SEARCH("""",A5) | セル A5 の最初の二重引用符 (") の位置を返します。 | 5 |
| =MID(A5,SEARCH("""",A5)+1,SEARCH("""",A5,SEARCH("""",A5)+1)-SEARCH("""",A5)-1) | セル A5 で二重引用符で囲まれた文字列のみを返します。 | boss |
重要
- SEARCHB 関数は非推奨になりました。
- 互換性バージョン 2 に設定されたブックでは、SEARCH でサロゲート ペアの動作が改善され、2 文字ではなく 1 文字としてカウントされます。 バリエーション セレクター (通常絵文字で使用される) は、引き続き個別の文字としてカウントされます。 詳細については、こちらを参照してください: Unicode 標準