相違点:「SEARCH」と「FIND」の違い - エクセル関数の使い方
セルから文字列を検索するエクセル関数「SEARCH(サーチ)」と「FIND(ファインド)」の違いは
「SEARCH」は大文字と小文字は区別されませんが「FIND」は大文字と小文字は区別します。また「SEARCH」はワイルドカードを使ってあいまい検索ができますが「FIND」はワイルドカード文字を検索できます
・関数 | SEARCH(サーチ) | |
・書式 | =SEARCH(検索文字列,対象,開始位置) | |
・内容 | 指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その番号を返します。 | |
・関数 | FIND(ファインド) | |
・書式 | =FIND(検索文字列,対象,開始位置) | |
・内容 | 指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その番号を返します。 | |
使い方
FIND 関数では、既定の言語の設定に関係なく、1 バイト文字も 2 バイト文字も、各文字が常に 1 つとして数えられます。
検索した文字が2つ以上存在する場合最初の1つの結果を出します
普通にひらがなや漢字など検索するならば
使い方も結果も一緒ですが
使い分けるとしたら
SEARCHはワイルドカードが使えます
FINDでワイルドカード文字を検索できます
SEARCHは大文字と小文字は区別されません
FINDは大文字と小文字は区別します
例)「Albert Einstein」から「E」を検索
=FIND("
E","Albert
Einstein")
=8
=SEARCH("
E","Alb
ert Einstein")
=4
ワイルドカードとは
検索する文字列を「*」や「?」で任意の文字列で検索できます
「*〇」:〇で終わる文字列
「〇*」:〇で始まる文字列
「*〇*」:〇を含むセルをカウントします
ワイルドカードは「*」複数「?」は1文字です
「?〇」:〇の前に1文字
「??〇」:〇の前に2文字
「〇???」:〇の後ろに3文字
サンプル1
セルA1
https://dw230.net/search/?key=FIND
=FIND("?",A1)
=26
=SEARCH("?",A1)
=1
FINDでは「?」の場所を検索して26文字目を取得
SEARCHでは「?」は任意の1文字なので1文字目を取得します
サンプル2
セルA2
https://dw230.jp/search/?key=SEARCH
セルA2からドメインを取り出します
FIND関数の場合
=MID(A2,FIND("//",A2)+2,FIND("/",A2,FIND("//",A2)+2)-FIND("//",A2)-2)
=dw230.jp
SEARCH関数の場合
=MID(A2,SEARCH("//",A2)+2,SEARCH("/",A2,SEARCH("//",A2)+2)-SEARCH("//",A2)-2)
=dw230.jp
どちらも同じ結果になります
サンプル3
セルA3
神奈川県横浜市神奈川区
セルA3から県名を取り出します
FIND関数の場合
=MID(A3,1,FIND("県",A3))
=神奈川県
SEARCH関数の場合
=MID(A3,1,SEARCH("県",A3))
=神奈川県
どちらも同じ結果になります
サンプル4
セルA4
090-1234-5678
セルA4が携帯か固定電話かを取得
ワイルドカードを使うのでSEARCH関数を使います
=IF(IFERROR(SEARCH("0?0*",A4),0),"携帯","固定電話")
=携帯
(「0?0」で始まる携帯以外は固定電話になります)
未入力を非表示にする場合
=IF(A4="","",IF(IFERROR(SEARCH("0?0*",A4),0),"携帯","固定電話"))