05 / EXCEL & CSV
毎月のExcel・CSV整形・転記・チェックを自動化。
業務自動化|ツール開発・検証
毎月のファイル整形・表記統一・空欄や重複のチェックをルール化し、処理結果と理由を残すCSVツールを実装・検証しました。確認や転記の前工程に残る手作業を減らす方法をご紹介いたします。
公開ツールの対象はCSVです。Excelへの転記・帳票出力は業務への適用案として、実ファイルと処理条件を確認して個別に検討いたします。
01
集計前の「毎回同じ作業」から減らす
例えば、毎月届くCSVをExcelで集計している業務なら、次のような改善が考えられます。
-
日付や名称を毎回直している。
決めた形式や対応表に沿って変換し、手直しの回数を減らす。 -
空欄や重複を一行ずつ探している。
条件に合わない箇所を機械で検出し、確認すべき箇所を見つけやすくする。 -
集計表へコピー・貼り付けを繰り返している。
対象の列と出力先を決め、転記の手間や貼り付け位置の間違いを減らす。
これらは業務への適用案です。実際にどこまで任せられるかは、ファイルの構成、処理の決まり、例外の多さによって変わります。
02
自動で処理しても、「なぜ件数が変わったか」を確認できるように
自動化した結果、100件あったデータが98件になったとします。理由が分からなければ、結局、元のファイルから調べ直すことになります。
そこで、処理後のファイルに加えて、読み込んだ件数、出力した件数、出力から外した行とその理由も残す設計をご提案いたします。手作業を減らしながら、結果の確認や修正を進めやすくするためです。
03
公開ツールでは、CSVの整形と確認用の記録を実装
Inefficiency Labの公開ツール「Data Cleaning Toolkit」では、こうした自動化の土台となるCSV処理をPythonで実装しています。
処理は、次の3段階に分かれています。
-
元の状態を調べる。
空欄や重複、列数の合わない行を確認します。この段階では値を変更しません。 -
処理ルールを確認する。
日付・数値などの列の種類を候補として示し、人が業務に合うかを確認します。 -
確認したルールで処理する。
表記の統一や入力チェック、重複処理を行い、元ファイルとは別にCSVと確認用の記録を出力します。
ルールと記録には、プログラムから読み取れるJSON形式を使います。同じ入力と設定で同じ内容の結果を生成する構成です。実装と処理の詳細(GitHub)
不備を入れた7行で、処理と記録を確認
自作したサンプルに、空欄、不正な日付、重複などを入れて動作を確認しました。この例では、不備のある行と重複行を出力から除くルールを設定しています。
検証用CSVの処理結果
残った3行と、外した4行を追える
読み込んだデータ
7行| 元の行 | 氏名 | 国 |
|---|---|---|
| 2 | Aiko Tanaka | jp |
| 3 | Ken Ito | us |
| 4 | Ken Ito | US |
| 5 | (空欄) | jp |
| 6 | Invalid User | xx |
| 7 | Mina Lee | gb |
| 8 | Wide Row | jp |
処理後のCSV
3行| 元の行 | 氏名 | 国 |
|---|---|---|
| 2 | Aiko Tanaka | JP |
| 3 | Ken Ito | US |
| 7 | Mina Lee | GB |
国コードは jp → JP、us → US、gb → GB
に統一。出力には2・3・7行目のデータが残ります。
ルールに合わず、出力から除いたデータ3行
重複として出力から除いたデータ1行
外した理由も、元の行までたどれる
-
元CSV 4行目重複
ID「002」と「 002 」は、整数化すると同じ「2」。先に現れた3行目を残しました。
-
元CSV 5行目必須項目が空欄
氏名が空白だけのため、この行を出力から外しました。
-
元CSV 6行目値がルールに合わない
存在しない日付「2026-02-30」、メール形式、国コード、負の金額の4項目でエラーを記録しました。
-
元CSV 8行目列数が合わない
ヘッダーは7列ですが、この行は8列あるため、出力から外しました。
検証用CSVと処理記録から作成した説明図です。表は氏名・国の2列を抜粋し、氏名の前後空白は表示上省略しています。「元の行」はヘッダーを1行目とする入力CSVの行番号です。
このサンプルでは、IDを整数に変換し、重複・不備のある行を外すルールを設定しています。先頭のゼロを残す必要があるIDなど、実際の業務では別のルールが必要です。
この図の元になった処理記録(GitHub)出力から除いた行についても、行番号や問題の内容が記録に残りました。例えば「必須項目が空欄」「存在しない日付」といった理由を確認できます。この例の処理記録(GitHub)
動作確認は8種類の自作サンプルで行っています。実業務での削減時間やミスの削減率は、今回の検証では測定していません。動作確認の範囲(GitHub)
このツールの対象はCSVです。Excelへの転記、数式・書式・複数シート・VBAの処理は、この検証には含まれません。実際の業務ファイルや大容量データでの動作も、別途確認が必要です。
04
品番のゼロや、必要な受注明細は残す
例えば、品番の「00123」を数値に変換すると「123」になります。先頭のゼロが必要な業務では、変換しないことが正しい処理です。
同じ内容に見える行も、別々の受注なら両方を残す必要があります。どの値を変換し、何を重複とするかは、データの意味を確認して決めます。不備が見つかった場合も、出力から外すか、処理を止めて確認するかを事前に合意いたします。
速く処理できることに加えて、必要な情報を保ち、確認できることも、自動化の大切な条件です。
05
まずは、毎月繰り返している一つの作業から
「この列を毎回直している」「集計よりも、その前の確認に時間がかかる」。そのような作業からご相談いただけます。
有償の診断・開発では、現在のファイルと完成例を確認し、処理ルールと例外を整理いたします。効果は処理の速さだけでなく、確認・修正を含めた作業時間で確かめます。
初回30分のオンライン相談では、現在の作業、困りごと、使用環境、希望する状態を伺い、診断・PoC・開発のどこから始めるかをご案内いたします。詳細な調査・データ分析・試作・設計は、有償支援の範囲です。