FLARES LLC
FLARES LLC

Technical document

Excel集計とDB結果を突合するバッチ設計

ExcelからWebアプリへ移行する期間は、両方の集計結果を比べる必要があります。差分が出た時に原因を追える突合バッチを用意すると、移行判断がしやすくなります。 Excel集計とDB結果の突合では、どちらが正しいかを急いで決めるより、差分の理由を分類できることが重要です。
データ処理 / 突合約10分公開日 2026年7月5日更新日 2026年7月5日
Excel集計とDB結果を突合するバッチ設計のアイキャッチ

Summary

この文書の要点

  • 突合キー、丸め規則、集計期間を明示する。
  • 完全一致だけでなく許容差を扱う。
  • 入力範囲、計算式、丸め、締め日、除外条件を突合メタデータとして保存する。
  • 差分は金額不一致、件数不一致、存在差分、丸め差分に分けて出す。

どこが設計の難所か

Webアプリへ集計機能を移すと、既存Excelと数字が合わないことがあります。原因は計算ミスだけでなく、対象期間、除外条件、丸め、入力データの差である場合があります。

Excel側の計算式が複雑だったり、手入力補正が入っていたりすると、完全な再現は難しくなります。突合では、どの差分を許容し、どの差分を修正対象にするかを決める必要があります。

既存のExcel集計と新しいDB集計を比べると、数字が完全一致しないことがあります。その差は実装ミスだけでなく、丸め、締め範囲、手動補正、古い計算式、除外ルールの違いから生まれます。

境界をどう切るか

突合バッチでは、Excel由来データとDB集計結果を同じキーと同じ期間で比較します。差分は金額差、件数差、対象外、キー不一致、丸め差などに分類します。

設計では、Excelファイルを単なる比較元ではなく、計算ルールを含む既存仕様として扱います。突合バッチは、集計結果だけでなく、どの条件で集計したかを保存し、差分を分類します。

実装で効く細部

取り込み時にExcelの元ファイル、シート名、行番号、取り込み時刻を保存します。DB集計側はSQLまたは集計関数で再計算し、比較結果をテーブルに保存します。レポートはCSVや画面で確認できるようにします。

TypeScriptのバッチでは、Excel読み取り、正規化、DB集計、突合、レポート生成を分けます。差分レコードにはkey、excel_value、db_value、diff_type、tolerance、noteを持たせ、後から確認者が判断できる形にします。

  • Excelの空欄、文字列数値、日付シリアルを正規化してから比較する。
  • 許容誤差を項目ごとに持ち、丸め差分と実差分を分ける。
  • 手動補正がある場合は、補正値を別データとして取り込み、元値を上書きしない。

壊れ方を観測する

検証では、既知の差分を含むテストデータを用意し、分類が期待通りになるか確認します。丸め規則や日付境界は特に差が出やすいため、境界値テストを入れます。

検証では、過去の代表月を複数使い、差分の分類が妥当かを確認します。単に一致率を見るのではなく、差分が説明可能か、修正すべき実装差分か、業務ルール差分かをレビューします。

捨てた選択肢とトレードオフ

突合バッチを作ると移行コストは増えます。しかし、数字が合わない理由を人が毎回調べるより、差分分類を自動化した方が移行判断は早くなります。

Excelに合わせすぎると古い誤りを新システムへ引き継ぎます。DB集計に寄せすぎると現場の既存数字と会話できません。移行期間は両方を並べ、差分理由を減らしていく進め方が現実的です。

現場に残す判断軸

Excel移行では、数字が合うかどうかだけでなく、合わない理由を説明できることが重要です。突合バッチは、移行中の信頼を作るための実務的な道具になります。

突合バッチの役割は、数字を合わせることだけではありません。差分を分類し、どのルールを正とするかを決める材料を作ることが本質です。

Technical documents

技術文書を増やしていきます。

AI、クラウド、業務アプリ開発、要件定義、運用設計に関する考え方を、今後も文書として整理します。

技術文書一覧へ