エクセル(Excel)で膨大なデータ量を扱っていると、特定の文字列を探すのに時間がかかり、大変ですよね。実はエクセルには、文字列を検索する便利な方法があります。この記事では、文字列を検索するさまざまな方法を解説します。
作業効率を上げるため、覚えておいて損はありません。記事の後半では、検索した文字列を抽出する方法も解説するので、ぜひ参考にしてください。
目次
エクセルで文字列を検索する方法
エクセルに備え付けられている機能には、文字列を検索できるものがたくさんあります。ここでは、文字列を検索する諸機能を順に解説します。
Ctrl + Fで検索窓を開く
最もシンプルなのは、CtrlキーとFキーを同時に押して検索窓を使う方法です。エクセル以外にもワードやWEBサイトなど、さまざまなソフトで利用できます。
検索したいキーワードを検索窓に入力すると、該当する文字列のセルへ遷移します。シンプルかつスピーディーで、単に文字列を検索するだけならこの方法が最もおすすめです。
検索範囲を縮めてCtrl + F
あまりにも膨大なデータ量が入力されている場合は、検索に時間がかかってしまいますが、指定範囲を縮めることで、待ち時間を短縮できます。検索したい範囲をドラッグで指定してからCtrlキーとFキーを同時に押してみましょう。すると、指定した範囲の中で検索が行われるので、よりスピーディーに検索結果が返ってきます。
連続していない、位置が離れたセルは選べないのかと思うかもしれませんが、Ctrlキーを押しながらクリックすると選択できます。
重複した文字列を検索
表の中で重複した文字列を探す場合は、IF関数とCOUNTIF(カウントイフ)関数を組み合わせましょう。COUNTIF関数で文字列を検索して、重複があったらカウントを1から2に増やしていき、IF関数でカウント2以上の文字列にマーキングするといった仕組みです。
上記のように、C列の中で重複しているセルがあれば「◯」を表示する仕組みを作ってみましょう。数式は下記のようになります。
=IF(COUNTIF(C:C,C3)>1,”◯”,””)
IF関数で、1より大きい場合は「◯」を表示して、それ以外の場合は空白を出力するように指定し、COUNTIF関数の数式で、C列を範囲指定して、C4の内容をカウントするようにしています。丸記号が付いている行は重複があるため、削除する等の対応をしましょう。
フィルター機能を使う
ホームタブの「並べ替えとフィルター」ボタンを押して、「フィルター」をクリックすると、さまざまな条件が表示される「テキストフィルター」が表示されます。ここで設定できる条件は、下記のような種類があります。
・指定の値に等しい ・指定の値に等しくない ・指定の値で始まる ・指定の値で終わる ・指定の値を含む ・指定の値を含まない |
文字列検索をする場合は、曖昧に検索できる「指定の値を含む」を選ぶのがおすすめです。
ホームタブの検索を利用する
ホームタブ右上にある虫眼鏡マークをクリックすると、検索ダイアログボックスが表示されます。オプションで「大文字と小文字を区別する」「完全に同一なセルだけを検索する」「半角と全角を区別する」といった条件を設定できます。
ワイルドカードで検索
ワイルドカードとは、検索する際に特定の記号を付与することで、「〜を含む」「〜から始まる」といった曖昧な検索ができるというものです。ワイルドカードを付与する位置によって、下記のような違いがあります。
表記例 | 意味 |
*△△* | △△を含む |
*△△ | △△から始まる |
△△* | △△で終わる |
例えば、「*県*」と検索すると、「県」という文字列を含んだセルが返されます。
ISTEXT関数で、文字列を含むか検索する
セルに文字列(テキスト)が含まれているかを確認する方法として挙げられるのが、ISTEXT(イズテキスト)関数です。ISTEXT関数の使い方としてはとてもシンプルで、引数(かっこの中)にセル番地を指定するだけです。
例えば、B3セルに文字列が入っているか確かめたい場合は、=ISTEXT(B3)という数式になります。もし文字列が入っていた場合はTRUEが返され、入っていなかった場合はFALSEを返します。
ISTEXT関数はIF関数と組み合わせることで、文字列が入っていた場合に文字や記号といったマークを付けることが可能です。文字列が入ってた時に◯を出力する場合は、以下のような数式になります。
=IF(ISTEXT(B3),”◯”,””)
FIND関数で指定した文字列の開始位置を検索する
エクセル(Excel)のFIND(ファインド)関数では、指定した文字列が、対象セルの何文字目にあるのかを検索する関数です。
例えば”東京都渋谷区”という文字列の中で、”区”という文字が何番目にあるのかを調べられます。
FIND関数の使い方
FIND関数の数式は下記のようになります。順に引数を解説するので、参考にしてください。
=FIND(検索文字列,対象,開始位置)
第1引数の「検索文字列」では、検索したい文字列を指定します。検索文字列を指定する際は、基本的にダブルクオーテーションで文字を囲わなければなりません。例えば「”区”や”◯”」といった書き方です。ただし、数値を検索文字列に指定する場合は、ダブルクォーテーションは不要です。
第2引数の「対象」は、文字を検索する際の参照先セルを指します。検索したい文字列が入力されたセルを指定しましょう。文字列が見つからないとエラーが発生してしまうため、「検索文字列」と「対象」は間違いのないよう注意しなければなりません。
第3引数の「開始位置」というのは、対象で指定したセルの何文字目から文字列を検索するかを設定する引数です。この引数は省略可能で、省略した場合は1が自動的に適用されます。文字列の先頭から検索されるので、基本的には省略して大丈夫です。
FIND関数の応用
FIND関数は、文字の開始位置を調べるだけの関数ですが、どのような場面で使われているのでしょうか?FIND関数は、他の関数と組み合わせると使い道が広がるため、基本的には何かと組み合わせて使用します。
FIND関数は「文字列を抜き出す関数」と特に相性が良いです。ここでは、LEFT(レフト)関数、RIGHT(ライト)関数の2つを解説します。
LEFT関数と組み合わせる
LEFT関数は文字列の左(先頭)から、指定した文字数を切り抜く関数です。数式は以下のようになります。
=LEFT(文字列,文字数)
例えば=LEFT(“東京都渋谷区”,3)という数式では、先頭から3文字目までが切り出されて、「東京都」だけが抽出されます。FIND関数は「特定の文字列の開始位置」を検索する関数です。LEFT関数とFIND関数を組み合わせると、自動で「”都”」や「”区”」といった文字列の位置までを抽出できるようになります。
都道府県を思い浮かべるとわかりやすいですが、東京都や埼玉県、北海道は3文字ですが、和歌山県や神奈川県は4文字です。この時点で、LEFT関数だけでは自動化できないことがわかります。そこで、FIND関数で、「都・道・府・県」の開始位置を調べることで、LEFT関数に反映できるようになります。
県までを抽出・表示したい場合の数式は「=LEFT(C8,FIND(“県”,C8))」となります。
LEFT関数は、抽出する文字の入ったセルと、先頭から何文字目までを切り抜くか数値を指定しますが、第2引数にFIND関数を使ってみましょう。FIND関数で”県”の位置を返してその値をLEFT関数の第2引数にすると、以下のようになります。
県以外にも都道府県に対応させる場合は、IFERROR関数を使うのがおすすめです。
RIGHT関数と組み合わせる
LEFT関数が先頭(左)から文字列を抽出する関数なので、勘の良い方は気付いているかもしれません。RIGHT 関数は末尾(右)から指定した文字数までを抽出する関数です。引数はLEFT関数と同じく、文字列と文字数を指定します。
実際の使用例を見てみましょう。下記の表をご覧ください。
4つの郵便番号と下4桁の列があります。郵便番号の下4桁を求める際は、文字列の末尾から文字を抽出できるRIGHT関数が適しています。
Aさんの郵便番号下4桁を求める際は、D8セルに以下の数式を入力してみましょう。
=RIGHT(D8,FIND(“-“,D8))
RIGHT関数で抽出する文字数を、FIND関数で指定しています。数式を入力して、Enterキーを押すと、郵便番号の下4桁が抽出されます。
オートフィルをかければ、あっという間に他のセルへ数式をコピー可能です。
FIND関数によく似た関数
ここでは、FIND関数によく似た3つの関数を解説します。微妙な違いですが、実現したい処理ができない可能性があるため、必ずみておくことをおすすめします。
FINDB関数
FIND関数とよく似た関数ですが、FINDB関数との違いは文字数をカウントするか、バイト数をカウントするかです。FIND関数で「あいうaiu」という文字列の中の「a」の開始位置を取得した場合、「4」となりますが、FINDB関数は大文字を2バイト、小文字を1バイトとしてカウントするため、「a」は7バイト目になります。
SEARCH関数
SEARCH(サーチ)関数は、FIND関数と同じ機能を有していますが、大文字小文字の区別をせず、ワイルドカードを使えるという違いがあります。
FIND関数では、大文字小文字、全角半角といった要素を明確に区別しますが、SEARCH関数では、それらを区別しません。例えば、「東京都新宿区123」という文字列から「1」の開始位置を調べる際、FIND関数は大文字の「1」を探すため、見つかることはありませんが、SEARCH関数であれば全角と半角が関係ないので、「7」と表示されます。
また、*(アスタリスク)をはじめとしたワイルドカードを使えるのがSEARCH関数の特徴です。
SEARCHB関数
SEARCHB関数は、FINDB関数と同様にバイト数を数える関数です。基本的にSEARCH関数を使うため、使う機会はありませんが、関数の数式を入力する際に、うっかり選んでしまわないよう注意しましょう。
まとめ
エクセルで文字列を検索する方法は多岐に渡ります。Ctrl + Fやホームタブのフィルターや検索、FIND関数など、さまざまな方法があるので、自分にあったものを見つけてみましょう。文字列の有無を確認する場合は、ISTEXT(イズテキスト)関数がおすすめです。
エクセルのFIND関数は、文字列のうち、指定した文字が何番目に位置しているかを調べる関数です。参照先のセルと検索したい文字列を指定するだけで、該当の位置を返します。検索する文字列を入力する際は、必ずダブルクォーテーションマークを付けましょう。エクセルは、ダブルクォーテーションマークがないと、文字列を判断してくれません。ただし、数値の場合は不要です。
FIND関数の機能は、単体で活きるものではありません。LEFT関数やRIGHT関数といった他の関数と組み合わせてはじめて実際のビジネスシーンで使えるようになります。文字列検索を使いこなすには、まずFIND関数を覚えることが重要なので、ぜひ覚えてみてください。