- CSVとExcelのファイルの違い
- 文字化けが起きる理由
- 先頭の0や長い数字が変わる理由
- 壊さずに開く手順
- 受け渡しでそろえる決めごと
結論
CSVは、表のデータを「文字だけ」で書いたファイルです。色も数式も持たない、ただの文字の並びなので、ほとんどのソフトやシステムで読み書きできます。その一方で、「この列は文字として扱う」「この文字コードで読む」といった情報を持っていないため、開くソフトが推測で解釈し、その推測が外れたときに壊れます。
壊れる原因の多くは、CSVそのものではなく「Excelでダブルクリックして開き、そのまま上書き保存する」操作です。元のファイルを残す、読み込み方を指定する、渡す側と受け取る側で決めごとをそろえる。この3つで事故はかなり減らせます。
CSVとは何か
CSVは「Comma-Separated Values」の略で、値をカンマ(,)で区切って並べたテキストファイルです。メモ帳のようなテキストエディタで開くと、中身は次のように見えます。
- 社員番号,氏名,入社日,郵便番号
- 00123,山田 花子,2024/04/01,0600001
- 00456,佐藤 太郎,2025/10/01,1000001
1行が表の1行、カンマで区切られた1つ1つが表の1マスにあたります。1行目には列の名前(見出し)を入れることが多いのですが、入れなければいけないという決まりはありません。
CSVがよく使われるのは、システム同士や会社同士でデータを受け渡すときです。勤怠システムから給与ソフトへ、ネットショップの注文一覧を会計ソフトへ、顧客の一覧を別のサービスへ。作った会社が違うソフト同士でも、CSVなら読み書きできることが多いため、受け渡し用の共通の形として使われています。
Excelのファイルとの違い
Excelのファイル(.xlsx)とCSVは、画面では同じような表に見えますが、中身は別物です。
| 見るところ | Excelのファイル(.xlsx) | CSV |
|---|---|---|
| 中身 | 値・書式・数式などをまとめたもの | 文字だけ |
| 色・罫線・列の幅 | 保存される | 保存されない |
| 数式 | 数式として残る | 計算した結果の値だけが残る |
| シート | 複数持てる | 1つだけ |
| 「この列は文字」という情報 | 持てる | 持てない |
| 開けるソフト | Excelや対応するソフト | ほとんどのソフト |
Excelで開いたCSVに色を付けて保存しても、次に開くと色は消えています。CSVに保存できるのは文字だけだからです。作業するための表はExcelのファイルで、受け渡すための表はCSVで、と役割を分けて考えると整理しやすくなります。
CSVが壊れやすい理由
文字コードの違いと文字化け
コンピュータは、文字を番号に置き換えて保存しています。この「どの文字を何番にするか」の決まりを文字コードといいます。日本語のCSVでよく出てくるのは、次の2つです。
- UTF-8:世界中の文字を扱える文字コード。今の多くのシステムやウェブサービスが使っています。
- Shift_JIS:日本語用として古くから使われてきた文字コード。以前からある業務ソフトや、日本向けのシステムでよく使われています。
書いたときと違う文字コードで読むと、意味の通らない記号や漢字が並びます。これが文字化けです。データが壊れたわけではなく、読み方を間違えているだけなので、正しい文字コードを指定して読み直せば元に戻ります。ただし、化けた状態のまま上書き保存すると、本当に壊れます。また、Shift_JISでは表せない文字もあるため、UTF-8からShift_JISに変えると、人名の一部の漢字や記号が「?」などに置き換わることがあります。
Excelでダブルクリックして開いたときに、どの文字コードとして読まれるかは、Excelのバージョンや設定、ファイルの作られ方によって変わります。「自分のパソコンでは読めたのに、相手のパソコンでは化けた」ということが起きるのはこのためです。
区切り文字
CSVはカンマで区切るので、値の中にカンマが入っていると困ります。たとえば「1,200」や「株式会社A,営業部」のような値です。こうした値は、ダブルクォーテーション(")で囲むのが一般的な決まりです。囲み方がそろっていないと、1つの値が2つの列に分かれ、それより右の列が1つずつずれます。
値の中の改行も同じ問題を起こします。住所や備考の欄に改行が入っていると、1件のデータが2行に割れて見えることがあります。さらに、カンマではなくタブで区切った形式(TSV)や、国や地域によってはセミコロン(;)で区切るものもあります。拡張子が .csv でも、中の区切り文字が違うことがある点は覚えておいてください。
先頭の0が消える
Excelは、数字だけでできた値を「数値」と判断することがあります。数値として扱うと、先頭の0は意味がないので消えます。
- 社員番号「00123」→「123」
- 郵便番号「0600001」→「600001」
- 電話番号「09012345678」→「9012345678」
画面で消えるだけでなく、そのままCSVとして保存すると、ファイルの中身も0のない形に変わります。これを給与ソフトや配送のシステムに取り込むと、別の人や存在しない番号として扱われます。
日付や長い数字が勝手に変わる
同じように、Excelの推測によって次のような変化が起こることがあります。
- 品番「1-2」「3/4」が、日付(1月2日、3月4日)に変わる
- 「2026/09/26」が「2026/9/26」のように表示の形が変わり、保存するとその形で書き込まれる
- カード番号や長い伝票番号のような桁の多い数字が、「1.23E+15」のような指数の表示になったり、末尾の桁が0に置き換わったりする
長い数字の末尾が0になる変化は、あとから元に戻せません。元のファイルが残っていなければ、正しい番号はわからなくなります。
実務での安全な開き方
Excelのメニューの名前や場所はバージョンによって変わるため、ここでは考え方を中心に書きます。細かい操作は、使っているExcelの公式のヘルプで確認してください。
- 元のファイルは開く前にコピーしておく:受け取ったCSVは「元」として保管し、作業はコピーで行います。
- ダブルクリックで開かない:Excelには、CSVなどのテキストファイルを「取り込む」機能があります。取り込むときに、文字コードや区切り文字、列ごとのデータの形式を指定できます。社員番号や郵便番号、品番の列は「文字列」を指定します。
- 中身を確かめたいだけなら、テキストエディタで開く:文字コードや区切り文字の問題なのか、Excelの変換の問題なのかを切り分けられます。
- Excelで開いたCSVを、そのまま上書き保存しない:保存するときは別の名前にし、どの文字コードで保存したかを確かめます。
- 件数を確かめる:取り込む前と後で、行の数が同じかを見ます。改行や区切り文字の問題で行が割れていると、件数がずれます。
CSVを渡すとき・受け取るときの決めごと
取引先や別の部署とCSVをやりとりする場合は、最初に次の点をそろえておくと、毎月の手直しが減ります。
- 文字コード(UTF-8かShift_JISか)
- 区切り文字(カンマかタブか)と、値をダブルクォーテーションで囲むかどうか
- 1行目に見出しを入れるかどうかと、列の順番
- 日付の書き方(2026/09/26 か 2026-09-26 か)
- 先頭に0がある列(社員番号、郵便番号など)はどれか
- 見本のファイルを1つ用意し、実際に取り込めるかを試す
例として、20人ほどの会社で、勤怠システムから出したCSVを毎月給与ソフトに取り込んでいるとします。ある月、担当者が中身を確かめるつもりでCSVをExcelで開き、上書き保存してから取り込むと、社員番号の先頭の0が消え、何人か分が取り込めない、ということが起こりえます。「取り込む前に開くなら、コピーを開く」と手順書に1行書いておくだけで防げる事故です。
CSVは、同じデータを何度も人の手で受け渡していることの目印でもあります。毎月同じ受け渡しをしているなら、システム同士を直接つなぐ方法(API)も選択肢になります。
まとめ
CSVは文字だけでできた、受け渡しのための表のファイルです。形が単純なぶん、文字コードや列の種類といった情報を持たず、開くソフトの推測で壊れます。文字化けは読み方の問題なので直せますが、先頭の0や長い数字の変化は、上書き保存すると元に戻りません。元のファイルを残す、取り込み機能で形式を指定する、やりとりする相手と決めごとをそろえる。この3つを業務の手順に入れておいてください。