「昨日落としたCSV」と「今日落としたCSV」。
ファイル名は違う。
中身もたぶん違う。
でも、どこが違うのかは分からない。
こういうCSV、業務ではかなり多いです。
EC、在庫、顧客、受注、売上、広告、予約、商品マスター。システムからCSVをダウンロードできるようになったのに、そのあと人がExcelで見比べているケースは珍しくありません。
データ連携や業務自動化を長くやっていると、「CSVは出せる。でもその後が手作業」という相談に本当によく当たります。システム側はちゃんと出力してくれるのに、最後の確認だけ人間が抱えているんですよね。
CSVを出せることと、CSVを活用できていることは別です。
CSVを毎日保存しているだけでは、変更履歴にはならない
たとえば毎日、商品データをCSVで保存しているとします。
9月1日.csv
9月2日.csv
9月3日.csv
これだけ見ると、履歴が残っているように見えます。
ただ、実際に知りたいのはファイルが存在することではありません。
・新しく増えた商品
・消えた商品
・価格が変わった商品
・在庫数が変わった商品
・カテゴリが変わった商品
こっちです。
ファイルを残すだけなら人間でもできます。
変更点を追うところから一気に面倒になります。
行数が同じでも、中身が同じとは限らない
CSV比較でありがちなのが「件数が同じだから大丈夫」という確認です。
これ、かなり危ないです。
1000件が1000件のままでも、1件削除されて別の1件が追加されていれば件数は同じです。
価格が変わっても件数は変わりません。
名称の一部が修正されても件数は変わりません。
つまり、行数はざっくりした異常検知には使えても、差分確認には足りません。
はい。
数字が同じだと安心する人間の習性、Excelは容赦なく突いてきます。
まず決めるのは「同じデータを何で判断するか」
CSVを比較するとき、最初に重要なのがキーです。
商品なら商品コード。
顧客なら顧客ID。
社員なら社員番号。
取引先なら取引先コード。
このように「この値が同じなら同じデータ」と判断できる列を決めます。
ここが曖昧だと、比較結果も曖昧になります。
逆にキーが決まれば、比較はかなり整理できます。
旧CSVにはあるけど新CSVにはない。
新CSVにはあるけど旧CSVにはない。
両方にあるけど値が違う。
大きく分けるとこの3つです。
毎回見るのは、CSV全体ではなく差分一覧だけでいい
私が実務向けのツールを作るとき、よく意識するのが「元データを全部見せない」ことです。
もちろん元データ自体は必要です。
ただ、確認担当者に毎回1000行見せる必要はありません。
たとえば結果を、
・追加 12件
・削除 3件
・変更 27件
のように分ける。
さらに変更については、
商品コードA001
価格 3,000円 → 3,300円
のように「何が変わったか」だけ見せる。
これだけで確認の質が変わります。
人間は探すのが苦手です。
でも、候補を出された後に判断するのは得意です。
だから検索と抽出は機械、最終判断は人に寄せます。
自動化というより「確認画面を作る」感覚
「PythonでCSV比較」と聞くと、なんだか大げさに感じるかもしれません。
実際はかなり地味です。
2ファイルを読み込んで、同じキーを探して、違う値を出す。
やっていること自体はシンプルです。
でも、こういう地味なところが毎日の仕事を削ります。
派手なダッシュボードより、毎朝10分見比べているCSVをなくした方が効くこともあります。
(映えません。でも仕事は減ります)
差分比較だけなら完成品から試せます
今回、この用途に絞ったWindows向けツールをコンテンツマーケットに用意しました。
▼ Excel・CSV差分比較ツール|追加・削除・変更を自動抽出
「旧ファイル」と「新ファイル」を比較して、追加・削除・変更を確認する用途です。
毎日や毎週、CSVをダウンロードして差分を見ている方なら、まずこういう小さいツールから試す方が現実的だと思います。
いきなり数十万円のシステムを作る必要はありません。
CSVを取ってくるところから自動化したい場合
一方で、実際の業務ではその前後もあります。
・Webサイトへログイン
・CSVをダウンロード
・不要列を削除
・列順を整える
・昨日のデータと比較
・差分だけExcelへ出力
・担当者へ通知
ここまで毎回やっているなら、一連の流れで自動化できる可能性があります。
私はExcel、Python、GAS、Webツールを組み合わせた業務改善も対応しています。
▼ Excel/Python/GASの自動化相談・開発
「毎日このサイトからCSVを落として、このExcelと比べています」
この説明だけでも、かなり具体的に整理できます。
昨日と今日のCSVを毎回開いているなら、次に開く前に一度考えてみてください。
本当に見たいのはCSVですか。
たぶん、変わったところだけです。