FIND と SEARCH の違い - エクセル(Excel)関数

FIND と SEARCH の違い - エクセル(Excel)関数

セルから文字列を検索するFINDとSEARCHの違い

・関数SEARCH(読み方 - サーチ)
・書式=SEARCH(検索文字列,対象,開始位置)
・内容指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その番号を返します。
・関数FIND(読み方 - ファインド)
・書式=FIND(検索文字列,対象,開始位置)
・内容指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その番号を返します。
使い方
FIND 関数では、既定の言語の設定に関係なく、1 バイト文字も 2 バイト文字も、各文字が常に 1 つとして数えられます。
検索した文字が2つ以上存在する場合最初の1つの結果を出します

普通にひらがなや漢字など検索するならば
使い方も結果も一緒ですが
使い分けるとしたら

SEARCHはワイルドカードが使えます
FINDでワイルドカード文字を検索できます

SEARCHは大文字と小文字は区別されません
FINDは大文字と小文字は区別します

例)「Albert Einstein」から「E」を検索
=FIND("E","Albert Einstein")
=8

=SEARCH("E","Albert 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),"携帯","固定電話"))
SEARCHとよく使うエクセル関数
 LEN 文字列の文字数を取得します
 MID 指定された文字数の文字を取得します
 SUBSTITUTE 指定した文字を置換します
 XLOOKUP  表の範囲を列から検索して呼び出す


FIND と SEARCH の違い>HOME

エクセル(Excel)関数

(C) 2001-2023 Digital World