[Excel]SEARCH関数

2019年9月16日

文字列

SEARCH関数

指定した文字列の中から、別に指定した文字列を検索し、その位置を返します。


Excel for Office 365 Excel for Office 365 for Mac Excel 2016 Excel 2013 Excel 2010 Excel 2007 Excel 2016 for Mac Excel for Mac 2011 Excel Online Excel for iPad Excel for iPhone Excel for Android タブレット Excel for Android フォン Excel Mobile Excel Starter 2010


機能

SEARCH 関数は、指定した文字列の中から、別に指定した文字列を検索し、その位置を返します。この際、大文字と小文字は区別されません。また、検索する文字列にはワイルドカード”*”及び”?”が使用できます。

 


構文

SEARCH(検索文字列,対象,[開始位置])

引数 説明 引数の指定 既定値
検索文字列 検索する文字列を指定します。ワイルドカードが使用可能です。 必須 (無し)
対象 検索文字列引数に指定した値を含む文字列を指定します。 必須 (無し)
開始位置 検索を開始する位置を指定します。 省略可能 1

解説

基本

まずはSEARCH 関数の簡単な例を見てみましょう。例えば、ある文字列から、"どんより“という文字列を検索します。

=SEARCH(“どんより",  “うどんより蕎麦が好き。")

“どんより" は “うどんより蕎麦が好き。"の2~5文字目であるため、この関数は2 を返します。ここで、第3引数{開始位置}は省略しているので、1が指定されます。この例では、{開始位置}は1~2までの値であれば、戻り値は変わらず2を返しますが、3を指定すると、3文字目の”ん”から検索を開始するため、”どんより”を検出できずにエラー#VALUEが返ります。

ここで、SEARCH関数がエラー値#VALUE!を返すケースは下記の通りです。

  1. {対象}の中から{検索文字列} が見つからない場合
  2. {開始位置} に 0 以下の値を指定した場合
  3. {開始位置}に{対象}の長さよりも大きい値を指定した場合

 

数式 結果 説明
=SEARCH(“どんより", “うどんより蕎麦が好き") 2 第3引数{開始位置}を省略した場合は1が指定される。
=SEARCH(“どんより", “うどんより蕎麦が好き", 1) 2 1文字目から"どんより"を検索し、2文字目で検出。
=SEARCH(“どんより", “うどんより蕎麦が好き", 2) 2 2文字目から"どんより"を検索し、2文字目で検出。
=SEARCH(“どんより", “うどんより蕎麦が好き", 3) #VALUE! 3文字目から"どんより"を検索したが、未検出のためエラー。
=SEARCH(“どんより", “うどんより蕎麦が好き", 99) #VALUE! 第3引数{開始位置}が第2引数{対象}の長さよりも大きいためエラー。
=SEARCH(“どんより", “うどんより蕎麦が好き", 0) #VALUE! 第3引数{開始位置}が1未満の値であるためエラー。
=SEARCH(“", “うどんより蕎麦が好き", 1) 1 第1引数{検索文字列}に空文字を指定すると、開始位置で指定した値を返す。
=SEARCH(“", “うどんより蕎麦が好き", 2) 2 同上
=SEARCH(“", “うどんより蕎麦が好き", 99) #VALUE! 第1引数{検索文字列}に空文字を指定しても、第3引数{開始位置}が第2引数{対象}の長さよりも大きい場合はエラー。
 
 

高度な機能

大文字と小文字

SEARCH 関数は大文字と小文字を区別しません。しかし、全角と半角は区別します。なお、この挙動を下表に示します。
 
数式 結果 説明
=SEARCH(“c", “ABCDE") 3 大文字"ABCDE"の中から小文字の"c"を検索した場合、3番目の大文字の"C"を検出。
=SEARCH(“C", “abcde") 3 小文字"abcde"の中から大文字の"C"を検索した場合、3番目の小文字の"c"を検出。
=SEARCH(“c", “abcde") #VALUE! 小文字の半角"abcde"の中から小文字の全角"c"を検索した場合、未検出でエラー。
=SEARCH(“C", “ABCDE") #VALUE! 大文字の半角"ABCDE"の中から大文字の全角"C"を検索した場合、未検出でエラー。
=SEARCH(“c", “abcde") #VALUE! 小文字の全角"abcde"の中から小文字の半角"c"を検索した場合、未検出でエラー。
=SEARCH(“C", “ABCDE") #VALUE! 大文字の全角"ABCDE"の中から大文字の半角"C"を検索した場合、未検出でエラー。

ワイルドカード

SEARCH 関数は、検索する文字列にはワイルドカード文字である疑問符”*”及びアスタリスク”?”が使用できます。"?"は任意の 1 文字と一致し、アスタリスクは 1 文字以上の任意の文字列と一致します。SEARCH関数で"?"又は"*"をワイルドカード文字ではなく、通常の文字として一致させたい場合、その文字の前に半角のチルダ “~"を付けます。
数式 結果 説明
=IFERROR(0 < SEARCH(“まさか*ろう", “まさかり担いだ金たろう"), FALSE) True 指定文字列中に"まさか"~"ろう"が含まれているか検出。
=IFERROR(0 < SEARCH(“県???市", “茨城県水戸市"), FALSE) False 市名が3文字の県を検出。2文字であるためFALSE。
=IFERROR(0 < SEARCH(“県???市", “栃木県宇都宮市"), FALSE) True 市名が3文字の県を検出。3文字であるためTRUE。
=IFERROR(0 < SEARCH(“県???市", “埼玉県さいたま市"), FALSE) False 市名が3文字の県を検出。4文字であるためFALSE。
=IFERROR(0 < SEARCH(“県???市", “東京都新宿区"), FALSE) False 市名が3文字の県を検出。県ではないためFALSE。

 

Excel関数

Posted by 黒箱