ホーム導入事例 / 世代ごとに様式の違う依頼書Excel 約870件を全件データベース化——既存帳票への書き戻しは一致率100%

大手企業

世代ごとに​様式の​違う​依頼書Excel 約870件を​全件​データベース化——​既存帳票への​書き戻しは​一致率100%

長年たまり続けた修理・改造の依頼書Excelを、AI抽出に頼らず位置を決めたプログラムで全件データベース化。既存のExcel様式への書き戻しは、ファイルの中身を外科的に差し替える方式で、書いて読み戻して同一であることを全件確認しています。

依頼書 約870件と変更通知 約400件を取り込み、3つのデータベースに計約1,470行を投入(全列を原本と照合して一致)。既存様式への書き戻しはラウンドトリップ検証で一致率100%、約100ファイルの全数スイープでも一致率100%・欠落ゼロ

※ 社名は秘密保持契約のため非公開。公開許可が得られ次第、実名で掲載します。

課題

設計変更や改造の依頼は、そのつどExcelの依頼書として起票され、回答が書き込まれて共有フォルダに保存されます。これが長年たまり続け、依頼書だけで約870件になっていました(数値はいずれも概数です)。

問題は、この蓄積が検索できないことです。「この品目に過去どんな変更が入ったのか」を調べる手段が、フォルダを開いて心当たりのファイルを順に確認することしかありません。しかも様式は年代ごとに変わり、シート構成も値の入る位置も異なります。引き継いだ前提は「様式がそろっていないのでAIに読ませるしかない」でした。

やった​こと

1. 「AIに読ませるしかない」を実測で覆す

まず、この前提を検証しました。全ファイルから様式の版を集計し、版ごとに主要項目(依頼番号・発行日・目的・数量など)が入る位置の実値を取り出し、そこから外れるファイルを数えます。直近の年代の様式は内部で3つの版に分かれていましたが、値の入る位置は全件同一で、外れはゼロ。

決まった位置から読めば、結果は「正解の分かっている1件との全列一致」で検証できます。AIの抽出は実行のたびに揺れるため、同じ強さの検証ができません。古い年代の様式だけはテンプレートの版で列がずれていたので、絶対位置をやめ、項目のラベルを起点に値を採る方式で吸収しました。

2. 読めないものは、読めないまま出す

チェックボックス(図形)の欄は通常のExcelライブラリでは読めないため、ファイルの内部構造を直接開いて状態を取り出しました。その欄が無い旧様式は「不明」のままです。

回答がスキャン画像でしか残っていない古い依頼も、内容を起こさず「その依頼が存在した」という行だけを残しました。検索して0件だったときに「履歴がない」と読まれるのを防ぐためです。原本の日付の明らかな誤記も、直さずそのまま保持して申し送りました。

3. 既存の帳票を、壊さずに書き戻す

依頼への回答は、既存のExcel様式に書き込みます。よくある事故は、Excelを扱うライブラリでブックを開いて保存し直す方法です。これをやると、チェックボックス・埋め込みオブジェクト・描画・外部データ接続・印刷設定などが無条件に落ちます。実測で約50の内部部品が消えました。セル値・書式・罫線・画像は残るので、壊れたことに気づかないまま「動いた」と誤認しやすい。

採ったのは、ファイルの中身のうち書き込む1シート分だけを差し替え、残りは元のバイトのまま再梱包する外科的な置換です。結合セルの起点は様式の世代で動くため、結合の定義から毎回求めます(起点でないセルに書くと、値は入るのに表示されません)。行の挿入は罫線が伝播せず結合も追随しないため、十分な空行を持つ枠に値を流し込み、あふれた分は「N件省略」と注記します。

4. 書いて読み戻して同一であることを、全件で確かめる

検証は5つに固定しました。意図した1つを除く全パートのバイト同一、書き込んだ値の読み戻し一致、結合・罫線・列幅の不変、PDF変換で破損がないこと、全件スイープです。

投入したデータには、列ごとの値の重複を数える自己点検を加えました。別々の案件なのに同じ文字列が並ぶ列は、値でなくラベルを拾っている証拠です。これで、4行に同じラベルが入った初期の取り込みミスを見つけました。加えて、結論を伏せた第三者レビューを2巡かけています。その指摘と是正の過程で、古い様式で部品行の隣の列を数量と読んでいた誤り(実際は拠点のコード)が見つかり、直しました。

納品物

Notion上のデータベース一式(依頼の記録・変更通知・旧番号と新番号の対応)、既存様式へ書き戻す固定のプログラム、登録手順の指示書ページ、利用者向けの使い方ページの4点です。

結果

依頼書 約870件と変更通知 約400件を取り込み、依頼の記録 約870行・変更通知 約400行・旧番号と新番号の対応 約200行、計約1,470行になりました。投入後の照合は全列でおこない、原本と一致。代表的な検索(版の遍歴、ある通知から始まった変更の連鎖、旧番号から新番号への追跡)が正しい答えを返すことも実データで確認しています。書き戻しはラウンドトリップ検証で一致率100%、約100ファイルの全数スイープでも一致率100%・欠落ゼロでした。

その​後

構築を終え、担当者による試用のフェーズに入っています。この書き戻しの技術は、既存のExcel様式を壊さずに値を書き込むに一般化して公開しています。