【Excel】CSVファイルの前ゼロ落ち、文字化けを防ぐには?

Office

Amazonやヤフーショッピングの商品管理で投入するファイルや、
お仕事で業務システムに入出力するファイルでCSVファイルを扱うことがありますよね。

ExcelでCSVファイルをダブルクリックで開き、そのまま編集、保存すると値が変わってしまう場合があります。

具体的には、
前ゼロがなくなってしまったり、
文字化けしたり。
(文字化けというのは”2E+11″ のような指数表記になることを言います)

ExcelでCSVファイルを扱うのは少しコツが必要です。

この記事では厳密にCSVファイルをExcelで扱う時はどうすればよいか、解説します。

この記事を書いた人
– IT業界で20年働いています
– システム受託がメイン業務で、普段からWord、Excelを使ってシステム仕様書などを作成しています

そもそもCSVファイルとはなんなのか?

CSVはComma-Separated Valuesの略で、データをカンマで区切ったファイル形式のことです

Windowsの場合、ダブルクリックで開くのではなく、
右クリックプログラムから開くメモ帳
を選択すると、メモ帳でCSVファイルの中身を確認することができます。

Excelで開くと次のようなものが、

メモ帳で開くと次のように見えます。

メモ帳で開いた方が、厳密にファイルとしてもっている情報を見ることができます。

CSVファイルをExcelで開くと値が変わることがある

さて、次のようなCSVファイルがあるとします。

Excelで開くと次のように表示され、値が変わっています

これをExcel上でなにも変えずに保存し、
そのファイルを今度はメモ帳で開くとデータが変わってしまいます。

“00001” というデータが “1”というデータに変わってしまっています。

これが、商品番号などに使用されていると、
00001234と
1234
では別の商品ということになってしまい、問題があります。

10桁以上の数値の項目の場合は文字化け(指数表記)になってしまいます。
これも問題です。

どうすればよいか→【データのインポート】で開く

『データのインポート』で開く

値が変わらないようにするには、
CSVファイルを開くときにデータのインポートで取り込むようにします。

まずExcelの空のファイルを開きます。
(以下は、Microsoft365やOffice2019以降の場合の操作例になります)


  1. [データ] タブの [データの取得と変換] の中の [テキストまたはCSVから] をクリックします。
  2. [データの取り込み] ダイアログボックスで、取り込みたいCSVファイルを選択し、[インポート] をクリックします。
  3. CSVファイルの内容をプレビューする画面が上がったら [データの変換] をクリックします。
  4. PowerQueryエディターが上がります。

次からはPowerQueryエディター上の操作になります。

  1. 表示されているデータの1行目がヘッダーになっていない場合は、[ホーム] タブ [変換] の中の [1行目をヘッダーとして使用] をクリックします。
  2. 全ての列を選択して(全ての列を選択するにはShiftを押しながら最初と最後の列をクリックします)
  3. [ホーム] タブ [変換] の中の [データ型:すべて] をクリックします。
  4. 属性を選択できるリストが表示されるので、[テキスト] をクリックします。
  5. [列タイプの変更] のダイアログでは、[現在のものを置換] をクリックします。
    (前ゼロや指数表示の列がCSVデータの通り表示されるようになります)

  1. PowerQueryエディター上で [閉じて読み込む] をクリックします。
  2. これで、Excelの新しいシートにCSVファイルの内容が取り込まれました。
  3. [テーブルデザイン] タブの [ツール] の中の [範囲に変換] をクリックして、CSVファイルとの接続を解除します。
    (メッセージボックスは [OK] をクリックします)

CSVファイル取り込み後の表示

データのインポート後、CSVファイルのデータそのものでExcelに表示されます。

編集して保存

編集して保存する場合は、

  1. [ファイル]メニューから [名前を付けて保存] をクリックします。
  2. 保存場所を選択し、
  3. [ファイルの 種類] を選択するボックスで、[CSV UTF-8(コンマ区切り)(*.csv)] を選択します。
  4. 保存するファイル名を入力し、[保存] をクリックします。
    (メッセージボックスは [OK] をクリックします)

編集して保存してもデータは変わりません。

どうでしょうか?
結構面倒ですね。。。

本当は、ダブルクリックで開くだけでここまでやってほしいのですが、ExcelはCSVファイルの値を自動判定する方を優先してしまうようで、うまくいきません。

CSVファイルのデータそのものを扱いたい場合は面倒でも、データのインポートを行いましょう。


Excelの作業効率アップはこちらをどうぞ