第16話 井の中の蛙
文字列関数たちの処理は時間こそかかったがトラブルなく終わった。トラブルと言えばイノウエの危険運転ぐらいだ。ともあれサイトウ不在の中でも無事クエストを終えられたことでおれは少しworkerとして自信をつけることもできた。
詰め所に戻り、イノウエはハイボールを飲みながらおれの知らない関数について説明をはじめた。
「そうですね、SPLITのことは説明しにくいのでREGEX関数から説明します」
「REGEX関数っていうことはひとつだけじゃないんですか?」
「REGEXはregular expression、つまり正規表現のことなの。タカハシさん、正規表現はわかりますか?」
「はい、同僚のエンジニアに前に少しだけ教えてもらったことがあったので。Excelに貼り付け前のCSVを加工したりするのに使っていました」
「なんだ、知ってるんじゃないですか。あ、すいませーん、ハイボールおかわり濃いめで」
イノウエは少し悔しそうにしながら、1/3ぐらいのこっていたハイボールを一息に飲み干した。
「正規表現を知ってるなら話は早いですね。REGEX関数は正規表現に基づいた文字列関数なの。検索のREGEXMATCH、抽出のREGEXEXTRACT、置換のREGEXREPLACEの3つがいまあるREGEX関数」
そういいながらイノウエはそれぞれの構文を紙ナプキンに書いた。
=REGEXEXTRACT(テキスト, 正規表現)
=REGEXMATCH(テキスト, 正規表現)
=REGEXREPLACE(テキスト, 正規表現, 置換)
「よくExcelしか知らない職人がFINDやLEFT、それから多重にIFを使って都道府県を抜き出す関数を書くけど、REGEX関数を使えばこういうふうに一発なの」
=REGEXEXTRACT(住所, ".{2,3}[都道府県]")
「これなら記述も最小だし、見ただけでなにを意図した式なのか一目瞭然でしょ?この1行だけで東京都港区六本木6丁目10−1 六本木ヒルズ森タワーから東京都も抜き出せるし、鹿児島県志布志市志布志町志布志2丁目1−1 志布志市役所志布志支所からも鹿児島県が抜き出せるわ」
おれは圧倒された。REGEX関数のすごさに。そして志布志支所の住所を一切噛まずによどみなく喋ってみせたイノウエに。REGEX関数の記述に比べたら通常の文字列関数なんてまったくのゴミだ。どちらのほうがいいかなんて議論する余地がない。実行速度については比べられないがおそらくシンプルな分早いのだろう。仮に速度が遅かったとしてもこの可読性の差は埋められない。可読性はただ読みやすいだけじゃなく、更に他の処理を埋め込んだ際の応用性にもつながってくる。複雑な処理をできる限りシンプルに書くのは応用性を保つためでもあるのだ。
イノウエのことを完全に甘く見ていた。さっき頼んだハイボールだってもうなくなりかけて次を頼んでいる。ペースが早い。だというのに流れるようにこの説明をしている。この世界に来て一緒に仕事をしたworkerはサイトウとイノウエだけだ。サイトウは常に落ち着いていてベテランで頼りになると思っていたがイノウエのことは正直舐めていた。VLOOKUPにいいようにされるし自分のやり方に頑固なところもあって柔軟性に欠ける。だがイノウエもworkerとして転生してくるだけの相応の実力を持っていたのだ。おれには自覚が足りなかった。おれはworkerとして、いやそもそもExcel職人としてもまだまだひよっこだった。誰にもつくれないシートが作れた。しかしそれはたかが20人程度の会社の中でのことでしかなかった。世界は広かった。GoogleSpreadsheetsという新しい潮流を試すこともしていなかった。愚かだ。あまりにも愚かだ。
おれが沈黙をする中、イノウエはハイボールの追加を頼んでいた。
※今回の関数
REGEXEXTRACT https://support.google.com/docs/answer/3098244
REGEXMATCH https://support.google.com/docs/answer/3098292
REGEXREPLACE https://support.google.com/docs/answer/3098245
################
REGEX関数について書くにあたって、はたしてそもそもこれがGoogleSpreadsheetsの独自関数なのか、それともExcelにあったけど僕が知らなかっただけなのか、それがわかっていなかったので調べ直したのですが、どうやらExcelにはない関数のようでした。IMAGE関数その他に比べれば代替可能で凡庸な機能ともいえますが、そのぶん応用性の高い関数でもあります。
※改訂
元々都道府県を抜き出す正規表現を
.+[都道府県]
と記載していたのですが、これだと「京都府」が例外で「京」になってしまうという指摘をいただいたので修正しました。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます