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以降の場合の操作例になります)
- [データ] タブの [データの取得と変換] の中の [テキストまたはCSVから] をクリックします。
- [データの取り込み] ダイアログボックスで、取り込みたいCSVファイルを選択し、[インポート] をクリックします。
- CSVファイルの内容をプレビューする画面が上がったら [データの変換] をクリックします。
- PowerQueryエディターが上がります。
次からはPowerQueryエディター上の操作になります。
- 表示されているデータの1行目がヘッダーになっていない場合は、[ホーム] タブ [変換] の中の [1行目をヘッダーとして使用] をクリックします。
- 全ての列を選択して(全ての列を選択するにはShiftを押しながら最初と最後の列をクリックします)
- [ホーム] タブ [変換] の中の [データ型:すべて] をクリックします。
- 属性を選択できるリストが表示されるので、[テキスト] をクリックします。
- [列タイプの変更] のダイアログでは、[現在のものを置換] をクリックします。
(前ゼロや指数表示の列がCSVデータの通り表示されるようになります)
- PowerQueryエディター上で [閉じて読み込む] をクリックします。
- これで、Excelの新しいシートにCSVファイルの内容が取り込まれました。
- [テーブルデザイン] タブの [ツール] の中の [範囲に変換] をクリックして、CSVファイルとの接続を解除します。
(メッセージボックスは [OK] をクリックします)
CSVファイル取り込み後の表示
データのインポート後、CSVファイルのデータそのものでExcelに表示されます。
編集して保存
編集して保存する場合は、
- [ファイル]メニューから [名前を付けて保存] をクリックします。
- 保存場所を選択し、
- [ファイルの 種類] を選択するボックスで、[CSV UTF-8(コンマ区切り)(*.csv)] を選択します。
- 保存するファイル名を入力し、[保存] をクリックします。
(メッセージボックスは [OK] をクリックします)
編集して保存してもデータは変わりません。
どうでしょうか?
結構面倒ですね。。。
本当は、ダブルクリックで開くだけでここまでやってほしいのですが、ExcelはCSVファイルの値を自動判定する方を優先してしまうようで、うまくいきません。
CSVファイルのデータそのものを扱いたい場合は面倒でも、データのインポートを行いましょう。
—
Excelの作業効率アップはこちらをどうぞ