『VLOOKUPの死角』#03 第2話【後編】:幽霊社員とスパゲッティExcel
※本記事は第2話の【後編】です。
あらすじや全話の一気読みは、公式の【連載マガジン(ロードマップ収録)】を、前編を未読の方は 第2話【前編】 をご覧ください。
第2話【後編】
「4,210万円だと? そんな大金がうちの労務から消えているわけがないだろう! このツールを、誰がどんな思いで作ったと思っているんだ」
古賀は両手を机に叩きつけ、身を乗り出した。手の甲には、浮き出た血管が細かく波打っている。
「大河内課長が、倒れる寸前まで削って遺してくれた命綱なんだ。病床の課長に手を握られて、言われたんだよ。『古賀、これだけは守ってくれ。壊れたら、みんなの給料が出なくなる』ってな……!」
古賀の荒い呼気が、会議室の机に置かれたキングファイルを揺らした。
「この聖域を、外部の人間が汚してたまるか! 新参の監査人が、大河内さんの執念にケチをつけるな!」
古賀の言葉が、美守の胸の最も深い傷口に突き刺さる。
前任者の善意を、現場の執念を、自分の代で途切れさせるわけにはいかない。切迫した祈りが、古賀の震える背中から痛いほど伝わってくる。
葛城は、感情の起伏を排して言葉を紡いだ。
「古賀さん。大河内氏の善意も、その夜の執念も、データの整合性とは無関係です」
葛城はノートPCの画面を操作し、スパゲッティExcelの一箇所を拡大した。
何重にもネストされ、執拗に重ねられた長い数式がディスプレイに横たわっている。
システムは、データが壊れていることを発信していた。
画面の隅に表示された、この文字列で。
「#N/A」
「画面の見栄えが悪いから。エラーが表示されると、自分が間違っているようで怖いから。そんな人間の都合と怯えが、データの本質を歪め、異常を正常に見せかけるのです」
葛城は視線をディスプレイに向けたまま、淡々と告げた。
「大河内氏の遺した盤石のツールは、エラーの存在を揉み消すために機能していました。原因は、IFERROR関数です」
葛城の指摘が、絡み合った数式の結び目を解きほぐしていく。
「画面上は、綺麗な空白が表示されます。これでは異常を検知できません。結果として、システムは前月データの踏襲を自動で行いました。在籍していない幽霊社員への送金口座が、毎月、自動で生成され続けていたのです」
葛城の指先が、CloudDockの画面上にある特定の行へとペン先を向けた。
「期間は3年間。対象者は4名。これが、あなたが盲信したツールの真実です」
古賀は、椅子へ深く沈み込んだ。
両手で顔を覆い、隙間から嗚咽が漏れる。
「そんな。私は大河内さんの遺産を信じていたのに。全部、私のせいで、会社に大穴を……」
顔を上げられない古賀の前に、葛城はもう1枚のサブディスプレイを差し出した。
「古賀さん。私はあなたの過去の過ちや、責任を追及するために来たのではありません」
葛城のトーンに、実務的な温度が戻る。
「あなたを、この複雑化したシートの迷宮から解放します」
葛城がキーを叩いた瞬間、CloudDockの画面の色彩が一変した。
何重にも絡み合っていた黒い数式の束が、分解されていく。
美守に、バックグラウンドの仕組みはわからない。
ただ、乱雑な英単語の羅列が、洗練された規則性を持つ光の並びへと組み替えられていくのが見えた。
崩れていたデータが、1列の直線へと再構築されていく。
「本来あるべきデータの姿です。数式による隠蔽を排除し、エラーを正しく検知できるように変更しました」
画面に映し出されたのは、マクロも長い数式も存在しない、誰が見ても一目でわかるシンプルな表だった。
古賀は恐る恐る顔を上げ、涙の滲んだ目でディスプレイを凝視した。
「これは……あんなに複雑だったシートが、こんなに短く、綺麗になるなんて」
古賀の目からこぼれた大粒の涙が、古い会議室の机の上にぽつりと落ちて広がった。
「これなら、私にもわかります。大河内さんがいなくても、私1人でも、間違えずに使えます」
古賀は手の甲で目元を拭った。
「古賀さん、私も同じでした」
美守は古賀の隣に歩み寄り、静かに語りかけた。
「自分が倒れたらすべてが止まる恐怖から、複雑怪奇な数式を組み合わせて、必死に守っているつもりだった。でも、それは聖域ではなく、見えない負債の温床だったんです」
古賀は潤んだ目で画面を見つめた。
「負債の、温床……」
「エラーをもみ消さず、正しく検知することが、本当の意味での引き継ぎです」
葛城は確かな声で言った。
「エラーは敵ではありません。システムの異常を教えてくれる、現場の味方です。それを消してはならない」
美守は隣に立つ葛城の横顔を、じっと見つめていた。
この人は、優しい言葉をかけるわけではない。
傷ついた現場を優しく慰めることも、手を差し伸べることもしない。
事実と誠実な技術を武器に、古賀の孤独な呪いを解いてみせた。
これが、この男の不器用極まりない救済の形なのだ。
東洋重工の古い会議室で、止まっていたデータの時間が、再び動き出した。
【次話へ進む】
▶︎ 第3話【前編】:確率論のハルシネーションと決定論を読む
(後書き:技術解説)
本作で描いた「IFERROR関数による例外処理の隠蔽」は、人事マスタと給与データ間のクロスチェックにおいて、実際に抽出された不整合に基づいています。
VLOOKUP関数の検索キー(社員コード等)不一致によって発生する「#N/A」等のエラーに対し、IFERROR関数を用いて空白へマスクする対症療法は、重大なリスクを内包します。
エラーの不検出は、前月データの踏襲を許容させ、退職者への過誤払いを長期にわたりブラックボックス化させる原因となります。
エラーを空白で消し去る都合のいい数式が、なぜ幽霊社員への過誤払いへと化けるのか。
技術的背景は、以下30秒の監査ログ(ショート動画)と解析レポートをご確認ください。
📄 技術背景を詳しく知りたい方へ
▶︎ 解析:第2話の事象をIT統制の観点から解体する — 属人化Excelに潜むIFERRORの死角
📌 【次話への移行ログ:未確定】
画面左下の「スキ(ハートマーク)」の打刻は完了していますか?
隠蔽・非表示化させず 、確かなファクトとしてハートマークを点灯させてください 。
