葛飾でひっそり暮らすIT屋の G Suite メモ

Google Apps で快適業務ライフなノウハウを伝えます

Google スプレッドシート には正規表現がある Excel には無い この違いは思いの外大きい

f:id:katstech:20161006231142p:plain

みなさん、正規表現やってますか!

正規表現は記号の組み合わせでテキストのパターンを表現できるという記法で、これが結構仕事で役に立つんです。

今まで結構いろいろな職場に行きましたが、正規表現なにそれおいしいの? という状況が多かったんですよね。。。

ちなみに、僕が考える多くの人に身につけて欲しいことベスト3は正規表現、マークダウンと後もう一つは考え中です。

そういわけで、Google Spreadsheet で正規表現を扱う方法を紹介していきます。

そもそも正規表現って?

冒頭の説明の通り、記号を使って文字列のパターンを表現します。

詳しい正規表現の内容については Microsoft のサイトで確認してみて下さい。

正規表現

例えば都道府県を検索する場合

..+?[都道府県]

これですべての都道府県を検索対象にできます。

こういった、決まったパターンを抜き出すのが、正規表現です。結構便利そうじゃないですか?

Spreadsheet で使う

さて、この便利な正規表現ですが、活用するためには正規表現に対応しているテキストエディタなどが必要になります。

Microsoft Office だと正規表現を扱えないので、結構つらいんですよね。

そこで Google ですよ。

G Suite なら Spreadsheet や Document で、正規表現を使った文字列の検索ができるのでテキストの処理が結構楽になります。

さらに、正規表現を扱える Spreadsheet 関数もあるので、入力されたデータから自動的にテキストを抜き出すという構成も作れたりします。

Google は神ですね。

正規表現を使う関数

正規表現を扱える関数は 3つあります。

REGEXEXTRACT("検索対象文字列","検索する文字列")
REGEXMATCH("検索対象文字列","検索する文字列")
REGEXREPLACE("検索対象文字列","検索する文字列","置換文字列")

このエントリーでは実用的かつ比較的簡単と言うか引数の少ない "REGEXEXTRACT" を例に、正規表現を使っていきます。

例えば、住所から都道府県を抜き出したい場合

=REGEXEXTRACT(F2,"^..+?[都道府県]")

上の方で紹介した都道府県に一致するパターンを使っています。なお、"^" は行の先頭を表すものです。

無くても機能はしますが、都道府県が最初に出てくるという条件のもとでは余計なエラーを回避するために付けておくと良いかと思います。

あとは下の行までセルをコピペすれば、住所の一覧をもとに都道府県の一覧が作れるという感じです。

ついでと言ってはなんですが、"REGEXREPLACE" の例も。

文字列の検索・置換も正規表現で

上の動画は、名前から空白を削除する様子です。

見てわかるとおり "\s" を使うことで、全角半角問わずスペースを削除しています。

スプレッドシートやドキュメント上で、Mac なら [コマンド + F] 、Windows なら [Ctrl + F] で検索窓を表示できます。

あとは動画のとおりに操作することで検索や置換を実行できます。

少しだけ使えると思いの外仕事が楽になる

仕事をしていて必要になる正規表現のパターンはそれほど多くないです、実際のところ。

ここで紹介した都道府県や空白の削除の他に、テキストエディタなら空白行を削除するパターンあたりを覚えるだけでいいかもしれません。

どれだけ深く突っ込むかは別にして、普段からちょっとしたテキストの処理をするために使い方を覚えておくといいですよ。