CSVファイルとは住所録等をテキスト化したデータで、エクセルファイルでも表組状態で開くことができます。
例えばショッピングカートの商品情報などをCSVで出力するということもあります。
今回、CSVファイルをエクセルで開いたら、番地と電話番号の表示が変になっていました。
調べて、変にならないように開く方法を見つけましたので忘備録として記録いたします。
現象はこのような感じです
エクセルファイルからCSVファイルを作ります。
CSVファイル上では正しく保存されていますが、これをエクセルで開くと次のようになりました。
保存したCSVをエクセルで開いたら何か変になりました
番地が日付表示になったり、電話番号の左の0が省略されました。
原因はエクセルの数値自動変換処理
なぜ、このように意図しない表示になってしまうのでしょうか?
原因はエクセルの自動変換にあります。
エクセルのセルはデフォルトで「標準セル」になります。
標準セルは数字の羅列は自動変換の対象になります。
例えば番地等は偶然日付と同じ書式になる場合があります。
1-2-3は、2001年2月3日という具合です。
エクセルだと、このような誤変換が発生しないように、あらかじめ書式設定をします。しかしCSVファイルは書式情報を保存できないため、改めて再変換されてしまうのです。
とはいえ、CSVをエクセルで開くたびに変換されてしまっては、非常に使い勝手が悪いです。
どうにかする方法がないか調べてみたところ、「CSVを強制無変換で読む」という方法がありました。
CSVを無変換で読む方法
CSVファイルをエクセルで無変換で読む方法を以下に記載します。
ポイントは、「データとして読み込む」です。
(1)エクセルを空白のブックで開く
いきなりCSVを開かずに、空白のブックとしてエクセルを開きます。
(2)データタブからCSV読み込みボタンからCSVファイルを読み込む
エクセルのデータタブをクリックします。
左から2番目の「テキストまたはCSVから」ボタンを押し、CSVを読み込みします。
読み込むと次のように表示されます。
番地は日付変換されていませんが、電話番号の左の0が消えています。
なので、0を消えないように設定します。
(3)データ型を検出しないに設定する
右側に「データ検出」メニューがあるので、データ検出をしないに設定します。
これで電話番号の0が表示されます。
(4)読み込みボタンを押す
電話番号の0が表示されていることを確認したら、読み込みボタンを押します。
これで、CSVが無変換で読み込みされます。
今回のCSVファイルもこのように読み込みされました。
自動変換されることなく、CSVファイル情報のままエクセルに読み込みできました。
CSVはそのままの情報で開くことが肝要
CSVは、DBへのデータ読み込みであったりなど、プログラムデータ用に使用されることが多いですが、その逆もあります。
現在のデータをバックアップ目的でCSV出力するような場合です。
今回CSVデータの中身を目視で確認する際に、エクセルファイルで開くと自動変換されていて困りました。
メモ帳などでCSVファイルを開けば自動変換されませんが、とても見にくいです。
今回エクセルのまま無変換読み込みすることで、この困った現象に対処することができました。