CSVをダブルクリックで開いた直後に、商品コードの「00125」が「125」になったり、長い番号が指数表示になったりすることがあります。文字化けを直すために毎回保存し直している職場も少なくありません。
CSV自体には、列が文字列か数値かという書式情報がありません。Excelへ取り込む時点で、列ごとの型と文字コードを指定することが重要です。
毎回同じ種類のCSVを扱うなら、Power Queryなどで取込手順を保存し、コード列は文字列、金額列は数値として指定します。すでに先頭ゼロが失われた後では復元できない場合があるため、元CSVを上書きしない運用にします。
特に注意したい列
数値に見えても、計算しない番号は文字列として扱います。
- 商品コード・社員番号・会員番号
- 郵便番号・電話番号
- JANなど桁数が決まった番号
- 日付のように見える管理番号
- 15桁を超える識別番号
- 先頭や末尾に空白を含む名称
開いた後に直すのではなく、取り込み方を固定する
CSVを保存したシステム側の文字コード、区切り文字、引用符の使い方を確認します。文字コードが一定なら、毎回同じ設定で取り込めます。複数の形式がある場合は、ファイル名や提供元ごとに取込ルートを分けます。
コード列に対して数値変換を行わないこと、取り込んだ行数が元CSVと同じことを確認します。先頭ゼロの桁数が固定なら、桁数チェックも加えられます。
- 1元CSVを保管する
開く前のファイルを原本として残し、直接上書きしません。
- 2列の型を指定して取り込む
コードは文字列、数量や金額は数値など、列ごとに指定します。
- 3桁数と行数を確認する
コードの長さ、先頭ゼロ、文字化け、レコード件数を確認します。
取込方法の選び方
一件ずつならExcelの「テキストまたはCSVから」でも対応できます。日次・月次で繰り返すなら、Power Queryで取込と列変換を保存し、フォルダー単位で処理する方法が向きます。
| 方法 | 向いている場面 | 確認したい点 |
|---|---|---|
| Excelの取込画面 | 単発のCSVを確認しながら開く | 列のデータ型を毎回確認する |
| Power Query | 同じCSVを繰り返し取り込む | 文字コードと列名変更に備える |
| VBA | 取込後の帳票作成や保存まで行う | CSVの仕様が変わった際に停止させる |
列や見出しが少しずつ違うExcelファイルを毎月で確認しておきたいこと
まずはダブルクリックをやめ、元ファイルをコピーして取込画面から開く運用へ変えるだけでも事故を減らせます。
- コード列の先頭ゼロが必要か確認する
- 元CSVの件数を控える
- Excel形式へ保存する前に別名を付ける
- 文字化けするCSVの提供元と作成日時を記録する
列や見出しが少しずつ違うExcelファイルを毎月を相談するときに伝えること
提供元が違うCSVをまとめず、形式ごとに正常例と問題例を用意します。
- 開く前の元CSV
- 正しい表示が分かる画面や仕様書
- 文字列として残す列
- 日付・金額へ変換する列
- 取込後に必要な並び順と出力形式
列や見出しが少しずつ違うExcelファイルを毎月をプロに任せる目安
- 複数種類のCSVを毎日処理する
- 先頭ゼロ消失が出荷や請求へ影響する
- 文字コードや区切り方が提供元ごとに違う
- 取込後の結合・照合・帳票作成まで続く
列や見出しが少しずつ違うExcelファイルを毎月で確認しておきたいこと
一度壊れた値を、表示形式だけで戻せるとは限りません。
- 元CSVをExcelで上書き保存する
- すべての列を自動判定に任せる
- 文字化けした状態で別形式へ変換する
- 件数を確認せず途中行の欠落に気づかない
入力データの検査で確認しておきたいこと
先頭ゼロは表示形式で戻せますか?
元の桁数が分かる場合は表示できますが、コードごとに桁数が違うと正しく復元できません。元CSVから文字列として取り込み直す方が安全です。
CSVをExcel形式へ変換すれば問題はなくなりますか?
正しい型で取り込んだ後に保存すれば扱いやすくなります。誤変換後に保存しても、失われた情報は戻りません。
文字化けの原因はExcelですか?
CSVを作成した側と開く側で文字コードの解釈が違う場合に起きます。作成元の仕様を確認してください。