毎月、CSVのデータを基幹システムや取引先に渡すとき、「列の並べ替え」や「項目の直し」を手作業で行っていませんか?
・指定の順番に列を入れ替えるのが面倒
・日付の形式(2026/03/12 → 20260312)を直すのが大変
・金額のカンマを取ったり、コードの前に0を足したりを、毎回くり返している
どれも単純な作業ですが、1か所でもまちがえると取り込みエラーになり、原因探しに時間を取られてしまいます。
■ 「この形でデータをください」と言われたら
私も本業(社内SE)で、取引先がシステムを入れ替えたときに
「新しいシステムに取り込める形で、データをください」と頼まれたことがあります。
本来は、システムを入れた側が合わせる作業です。
でも実際は、頼まれた側が合わせることがほとんどです。
しかも1回では終わらず、毎月、同じ並べ替えが続きます。
取引先が増えれば、その分だけ「指定の形」も増えていきます。
■ なぜ並べ替えはミスが起きやすいのか?
基幹システムやEDI(電子データ交換)は、データの「並び順」や「形式」が少しでも違うと受け付けてくれません。
手作業で列を入れ替えていると、
・貼り付ける列を1つまちがえた
・直し忘れた項目があった
といったミスが、どうしても起きます。
もう1つやっかいなのが、元のデータの列が増えたときです。
「3列目を5列目へ」と位置で決めていると、元のCSVに列が1本増えただけで、全部ずれます。
しかも、ずれたまま値は入るので、エラーにならずに間違ったデータができてしまいます。
■ 現場で起きやすいトラブル
・請求・出荷のデータを、取引先指定のレイアウトに直すときの漏れ
・在庫のデータを、基幹システムの取込形式に直すときの形式エラー
・CSVをExcelで開いて保存したことによる「0落ち」(00123 → 123)
これらを「慎重に、時間をかけて」行うのは、今日で終わりにしませんか?
■ 対策方法
① ExcelのVLOOKUP関数などで、別シートに整える
② 変換用のマクロ(VBA)を使う
③ 変換ソフトを購入する
関数は、元の列が増えたり並びが変わったりすると、作り直しになります。
そこで私は、CSVを読み込んで、ボタン1つで指定の形に書き出すExcelのツールを作って使っています。
・どの列を、どこに、どう書くかを「対応表」に並べるだけ
・元の列は「名前」で探すので、列が増えても、並びが変わってもずれない
・日付の形・金額のカンマ・0埋め・全角の数字を、指定どおりにそろえる
・CSVをExcelで開かずに読むので、先頭の0が消えない
・日付として読めない・数字でない値は、何行めかを一覧で出し、ファイルを作らない
・本番の前に、先頭100件を試しに変換して確認できる
・取引先ごとに対応表を分けておけば、選んでボタンを押すだけ
この仕組みを使えば、毎月の並べ替え作業から解放され、正確なデータをすぐに作れます。
■ 同じことで困っている方へ
このツールのVBAコード全文と、貼り付け手順・使い方を、ココナラで公開しています。
Excelにコードを貼るだけで使えます。
▽CSVを取引先指定の形式に変換(この記事のツール)
「うちの形式に合わせて作ってほしい」「品番の読み替えや合計も入れたい」「Excelのまま読みたい」という場合は、専用版でお作りします。お気軽にご相談ください。
▽サービス(専用版)
「取引先ごとの指定フォーマットに変換します」
現役のSEとして、専門用語はなるべく使わずにご説明します。