今回は、Excel(エクセル)のFIND(ファインド)関数を使って、セルの文字列を検索して、その位置を数値で表示してみます。FIND関数の基本的な使い方のほかに、指定した数の文字を抽出するMID(ミッド)関数と組み合わせた使い方も紹介していきます。
本連載では、「よく使うけど忘れやすいMicrosoft Officeの操作」をキーワードに、Officeアプリケーションの使い方を解説していきます。記事の制作には、執筆時点で最新の状態にアップデートしたMicrosoft Office 2016を使用しています
FIND関数でセル内の文字の位置を抽出
Excelのセルに入力したデータから、指定した文字(文字列でも可)が最初に出てくる位置を検索して数値で返してくれるのがFIND関数です。まずは基本的な数式の書き方を確認していきましょう。
基本形は、=FIND(検索文字,検索対象)
今回は、「○○○○×○○」という文字列が入力されたA2セルを対象に、「×」の文字の位置を取り出してみます。まずは数式を入力したいセル(今回の例ではB2)をクリックして選択し(図1)、数式バーに「=FIND(」と入力(図2)。「"×"」と入力して検索文字に「×」を設定します(図3)。「,」(カンマ)で区切ったら検索対象となるA2セルをクリックして数式に入力し、「)」で閉じて「=FIND("×",A2)」という数式を完成させます(図4)。[Enter]キーを押して確定させると、A2セルの文字列にある「×」の位置を左から数えた数値である「5」が表示されます(図5)。
検索文字の部分にセルを指定してみる
先ほどはFIND関数の数式で「×」という検索文字を指定しましたが、セルを指定して、任意の文字の位置を表示させることもできます。まずはセル(ここではB4)を指定し、数式バーに「=FIND(」と入力してからC4セルをクリックして数式に入力(図6)。「,」で区切って検索対象のセル(ここではA4)をクリックし、「)」で閉じて「=FIND(C4,A4)」という数式を完成させます(図7)。
[Enter]キーで確定したら、C4セルに位置を検索したい文字(今回は「n」)を入力してみます(図8)。A4セルの「Mynavi」文字列にある「n」の位置である「3」がB4セルに表示されたことがわかるはずです(図9)。
FIND関数とMID関数を組み合わせる
最後に応用方法の1つとして、指定した位置から指定された文字数の文字列を取り出すMID関数とFIND関数を組み合わせて、指定した文字の位置より前にある文字列を取り出す方法を確認してみます。
=MID(文字列, 開始位置, FIND関数で取り出した文字数)で数式を作成
今回の例では、「マイナビ(コード001)」と入力したA6セルを参照して、「(」より前にある文字列である「マイナビ」を取り出しています。数式の基本形は「=MID(文字列, 開始位置, FIND関数で取り出した文字数)」となります。
セル(今回の例ではB6)を選択したら数式バーに「=MID(」を入力して参照する文字列の入ったA6セルをクリックして数式に反映させます(図10)。続けて「,1」で開始位置(1文字目)を指定し、「,FIND("(",A6,1)-1)」で「(」までの文字数を指定します(図11)。この式ではA6セルにある「(」の位置を1文字目から検索して「-1」で「(」が含まれないようにしています。
[Enter]キーで確定させると「マイナビ」の文字列だけが抽出されてセルに表示されます(図12)。右下のフィルハンドルをドラッグして他のセルにも適用させることも可能です(図13)(図14)。このように、会社名のあとにカッコや#などで区切って通し番号や注記テキストなどを付けているセルから、会社名の部分のみを取り出したいといったケースでも、FIND関数(とMID関数)を活用できます。