Excelで入力されてる文字の一覧で特定の文字が始まる位置を知りたいんだけど…
そう悩む人はきっと特定の品名が決められていたり、文字がある位置で何を表しているかが変わったりするようなものを扱っていることでしょう。
あるいは、特定の記号の後ろにある文字で意味が変わることもあるかもしれません。
例えば、曲名と歌手名の間に「|」が必ず入るとして、曲名の長さは一定ではありません。
そんな時、曲名と歌手名を分割したい時に「|」の位置が特定できないとどこで分割したら良いかわかりません。
そんな悩みを解決する関数が「SEARCH」関数です。
今回はそんな文字列の中から、特定の文字列の開始位置を特定する関数「SEARCH」について紹介します。
関数「SEARCH」とは?
そんな時は「SEARCH」関数を利用すると良いですよ
「SEARCH」関数って何ですか?
SEARCH 関数および SEARCHB 関数は、指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その番号を返します。 たとえば、”printer” という語で文字 “n” の位置を検索するには、次の関数を使用できます。
マイクロソフトOfficeサポートホームページ
マイクロソフトの公式HPでは上記のように説明されています。
「SEARCHB」関数が出てきましたが、これは文字列の開始位置ではなく、文字列のバイト数の開始位置を取得する関数です。
こちらは「LEN」関数と「LENB」関数の関係と同じ関係だと考えてください。
また、同じように文字列の開始位置を調べる関数として、「FIND」関数があります。
「SEARCH」関数と「FIND」関数の違いは英字の大文字と小文字を区別するか、区別しないか?の違いになります。
「FIND」関数の使い方等の説明は以下のページを参照してください。
関数「SEARCH」の考え方・使い方
ここからは関数「SEARCH」の考え方や使い方について説明します。
関数「SEARCH」の構文
関数「SEARCH」の構文は以下の通りです。

関数の構文の特長としては、一番最初に「検索文字列」、次に「対象文字列」を指定するということです。
Microsoft Accessにも同じような関数で「InStr」関数が存在しますが、これは一番最初に開始位置、次に「対象文字列」その次に「検索文字列」を指定します。
どちらも使う人はどっちが先だったか?と混乱するかもしれませんが、これは覚えるしかないと思っています。
混乱しないように気を付けてくださいね。
関数「SEARCH」の使い方
ここからは関数を利用する場合の操作方法を説明したいと思います。
紹介する方法としては、「関数の挿入」と「直接入力」の2種類です。
関数の挿入
まず、文字列の開始位置を表示させたいセルにカーソルを合わせ、fx(関数の挿入)をクリックする。

別のウィンドウが立ち上がるので、関数の分類を「文字列操作」に変更し、SEARCHを探し出して選択。
選択が完了したら、OKボタンをクリックする。

ウィンドウが関数の引数へと変わるので、検索文字列の上矢印ボタンをクリックする。

ウィンドウがちいさくなり、セルを選択できるようになるため、検索したい文字列が入っているセルを選択し、ENTERキーを押す。

選択が終わるとウィンドウが戻るため、次は対象の上矢印ボタンをクリックする。

すると、またウィンドウがちいさくなり、セルが選択できるようになるため、検索する元の文字列が入っているセルを選択し、ENTERキーを押す。

またウィンドウが戻るので、OKボタンをクリックして関数を確定させる。

直接入力
文字列の開始位置を入力したいセルに「=SEARCH(」と入力する。

探したい文字列が入っているセルをクリックして選択する。

選択が終わったら、「,(カンマ)」を入力し、次に元の文字列が入っているセルをクリックして選択する。

選択が終わったら、「)」と入力して、ENTERキーを押し、関数を確定させる。

※関数の挿入・直接入力共に、開始位置を指定したい場合は、元の文字列が入っているセルの次に開始位置を指定してください。
まとめ
今回は文字列の中から特定の文字列が始まる位置を探索する関数「SEARCH」について紹介しました。
文字列の開始位置を探索する「SEARCH」関数や「FIND」関数は文字列を切り取る「RIGHT」関数や「MID」関数、「LEFT」関数と組み合わせて使うことで、処理の簡素化などへの応用が広がります。
文字列操作の関数は便利なので、是非覚えていきたいところですね。



コメント