第21話 エラーの理由・詳細
「この…、クソ関数がっ…」
イノウエはしばらくREGEXREPLACEを踏みつけ続けていた。おとなしくなっているというのに不憫だ。悪いのはエラーが起きる数式を作り、そして放置しているユーザーではないのか。哀れだ。イノウエも昨日はあんなにREGEX関数を褒めちぎっていたはずなのに。workerとしてもっともつらいことは大好きな関数たちと文字通りの意味で殴り合わなくてはいけないことだろう。おれもSUMIFSに襲われたときにそれを思い知った。
「イノウエさん、大丈夫ですか?」
「え…ええ、取り乱してしまって申し訳ありません。まだEXTRACT2体が残っていますね」
「はい、動かないので放っておいてもいいかと思いますがどうでしょうか?」
「そうですね、一応あいつらの影に処理対象の正常な関数が隠れていたりするとこまるので見にいきましょう」
おれたちは残る2体のほうへ戻ることにした。歩きながらおれは尋ねた。
「ところで、エラーの原因ってなんなんでしょうか?」
「ああ、すいません。説明を忘れてました。REGEX関数は正規表現をマッチする文字列関数なのですが、一般にプログラミングでよく使われるような正規表現全てに対応しているわけじゃないんです。よく引っかかるケースが後読み先読みのマッチです。例えば東京都港区六本木6丁目10−1 六本木ヒルズ森タワーという住所に対してヒルズの後ろにある文字をマッチしたい場合は(?<=ヒルズ)で表現できるのです。これは都道府県の後ろを抽出するとか、メールアドレスのドメインの前を抽出するとか、いろいろと便利なシーンが多いのですが、残念ながらREGEX関数では対応していないんです」
「なるほど。ありがとうございます」
イノウエはさっきまでキレていたのがウソのようだ。正規表現に関しては深い知識がスルスルと出てくる。そうやって喋っているうちに入口近くに戻ってきたので、薄ら赤く光るREGEXEXTRACTを遠巻きに眺めた。
「なにかみえますか?」
「いやー、大丈夫そ・・・、いやなにかいますね」
1体のEXTRACTの根本を手のひらサイズの関数、というか手のひらそのままの関数が這っている。アダムス・ファミリーのハンド、VLOOKUPだ。
「このユーザー、どういう目的でこのシート作ってるんでしょうか。理系学生の正規表現の練習だって聞いてましたけど」
「自由帳みたいなシートの使い方する人、たまにいるんですよ。そんなに複雑な関数や膨大なデータが出てくることはないのですが、突拍子もない関数が出現しがちですね」
なるほど、そういわれると確かにおれも特定の意図ではなく、ちょっとしたデータの加工などに使うExcelを常にデスクトップに置いていた。
「面倒だけどEXTRACTをおとなしくさせてから処理しましょう。先程と同じ要領でいいですね」
おれはうなずき、EXTRACTの前に立とうとしたその時、VLOOKUPがカサカサと歩いておれの高枝切りバサミに飛びついてきた。ついてるぞ。おれはVLOOKUPに手を重ねて唱えた。
「処理します。ブイルックアップ!」
数秒経ったかがなんの反応もない。手をどけてみてみると、このVLOOKUP、小指の爪がマニキュアを塗ったように赤い。ただでさえキモいのにどうなっているんだ。
「イノウエさん、これって…?」
「こいつもエラーね…」
おれもworkerになる前はさんざんエラーを出してきたので文句は言えないのだが、さすがに勘弁してほしいものだ。VLOOKUPは所詮ハンドなのでREGEX関数のような危険はなく、高枝切りバサミの柄をすこしずつたぐっている。居座られてもうっとうしいのでおれはブン、と柄を振った。
「いやああああああああああ!!!!!!」
VLOOKUPはつかまりきれずに飛んでいった。しかし落ちた先が悪かった。放物線を描いた後、なぜかそいつはイノウエの胸元というか胸につかまって着地した。VLOOKUPとイノウエはなぜいつもこうなるのだろうか。正直少しうらやましい。
「す、すいません。そんなつもりじゃ、いやそっちに飛ばすつもりは…」
なんだかラッキースケベをやらかしたような弁明をしてしまいかけて自分でも困惑した。
「許せない…、許せない…、責任取らせてやる」
イノウエはVLOOKUPの手首をつかみ、胸から引き剥がした。VLOOKUPの手を開かせて床に押し付ける。ナタの根本を持ち、VLOOKUPの小指に刃をあてる。おいおいおいおいおい。
「イノウエさん、さすがにそれはちょっと…」
「あ?」
どうしたらいいんだ。そんな猟奇的なシーン見たくないぞ。しかしどうすることもできない。
イノウエがナタを振りかぶったその時、VLOOKUPが消えた。周囲のREGEX関数も同時に消えた。
「ちっ逃げたか」
どうやらユーザーがエラーの関数を消したようだった。こうしてサイトウのいない2日目のクエストは終了した。
***************
GoogleSpreadsheetsの正規表現はgoogle製の正規表現エンジン、re2の仕様に準拠しています。詳しくは以下のドキュメントをご確認ください。
https://github.com/google/re2/blob/master/doc/syntax.txt
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます