Excelで正規表現を使って特定の文字列を抽出したい
Microsoft Excelで、正規表現を使って特定の文字列を抽出したいと思ったことはありませんか?正規表現とは、文字列を「1つの文字列」で表す表記方法です。正規表現は、主にテキストエディタやプログラミング言語で使用されます。
正規表現を使用することで、文字列を様々な条件で検索することができるようになりますよ。以下に正規表現で使用する記号の一部(記号・意味・使用例)を説明します。
- .:任意の一文字。「a.b」
- +:直前の文字パターンを一回以上繰り返す。「ab+」
- *:直前の文字パターンを0回以上繰り返す。「ab*」
- ?:直前の文字パターンを0~1回繰り返す。「ab?」
- |:いずれかの条件を満たしている。「ab|cd」
- []:いずれか一文字に当てはまる。「[abc]」
- ():括弧の中の文字をグループ化する。「(abc)」
- ^:直前の文字が行頭にある。「^a」
- $:直前の文字が行末にある。「$a」
- [min,max]:直前の文字パターンをmin回からmax回繰り返す。「abc[2,5]」
以上が正規表現で使用される記号の一部となります。ちなみに正規表現に似たものに「ワイルドカード」がありますが、正規表現はワイルドカードよりも複雑な検索条件を指定することができます。上記で記載している*(アスタリスク)などはワイルドカードでも使用されますが、意味合いが異なるので注意しましょう。
Excelで正規表現を使って特定の文字列を抽出する方法
それでは、Excelで正規表現を使って特定の文字列を抽出する方法を説明します。Excelで正規表現を使って特定の文字列を抽出するには、正規表現検索をするためのアドインを導入する必要があります。
Excelで使用できる「Excel用正規表現検索ダイアログアドイン」は下記リンク先のWebページにて配布されているので、アクセスして「ダウンロード」項目にあるテキストリンクをクリックしてzipファイルをダウンロードしましょう。
ダウンロードした圧縮ファイルを解凍して作成されるフォルダ内の「excelre.xla」をダブルクリックして開きましょう。
「Microsoft Excelのセキュリティに関する通知」ダイアログボックスが表示されますが、問題はないので「マクロを有効にする」をクリックしましょう。
「Language?Yes then English,No then Japanese.」と確認メッセージが表示されるので、「いいえ」をクリックしましょう。
「ブックモードで使用しますか?」と表示されるので、「いいえ」をクリックしましょう。
「正規表現検索をインストールします。」と表示されるので、「OK」をクリックしましょう。「インストール先をユーザアドインフォルダから変更しますか?」と表示されたら、「いいえ」をクリックします。これで、正規表現検索のアドインのインストールが始まります。
「インターネット通信系の機能を全て有効にしますか?」と表示されるので、「はい」をクリックしましょう。
「正規表現についてよく知っていますか?」と表示されます。ここは「キャンセル」をクリックしています。
「インストールが完了しました。」と表示されたら、「OK」をクリックして完了です。ダウンロードしたファイルは削除してしまっても問題ありません。
Excelが開いたら、早速正規表現を使用して検索を行ってみましょう。この例では画像の項目の中から、「りんご」もしくは「さくらんぼ」を検索します。
正規表現検索アドインは、「Ctrlキー+Shiftキー+Rキー」の同時押しで呼び出せます。ショートカットキー操作を行うとウィンドウ右側に正規表現検索が表示されるので、「検索する文字列」に「りんご|さくらんぼ」と入力して「すべて検索」をクリックしましょう。
これで正規表現検索が行われます。新しいブックが開き、検索の結果が表示されますよ。この例では「A8」セルに「さくらんぼ」が、「A2」セルに「りんご」があることが分かりました。このように、アドインを使用して簡単に正規表現検索を行うことができますよ。