エクセルCSVデータが勝手に変わるのを防ぐ 文字列読み込み法
CSVファイルをエクセルで開いたときに、次のように元のデータが変わってしまうことがあります。
- 最初の0が消えてしまう(例:「00001」→「1」)
- 括弧付きの数がマイナスの数になってしまう(例:「(1)」→「-1」)
- 日付データが「年/月/日」の書式になる(例:「2016-6-1」→「2016/6/1」)
- 「年/月」という形のデータが「英語の月名-年の下2桁」の書式になる(例:「2016/6」→「Jun-16」)
- 住所の丁目・番・号が、日付に書き換えられてしまう(例:「1-2-3」→「2001/2/3」)
このようなことが起きる原因は、エクセルが勝手に、
- 数っぽい見た目のものは、数として取り扱ってしまう
- 日付っぽい見た目のものは、日付として取り扱い適当に書式を設定しまう
ところにあります。
→参考:エクセル入力で、勝手に変な日付・数字に変換されるデータ一覧
この記事の目次
csvファイルをそのままの形で取り込む3つの方法
次のようなファイルをエクセルで取り込むことを考えて見ます。
00001,2016-6-1,1-2-3,(1),"2016-6-1",2016/6,1 00002,2016-5-31,2-3-4,(2000),"2016-5-31",2016/5,2
これを普通にエクセルで取り込むと、一番右の列を除き、元のデータと違う内容になってしまいます。
このように、勝手に内容が変わるのを防ぐためには、次の3つの方法があります。
「外部データの取り込み」を使って取り込む
- 1.外部データの取り込み
-
リボンの「データ」→「外部データの取り込み(テキストファイル)」をクリックする
- 2.カンマ区切りデータとして取り込み
-
「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選択し、「次へ」をクリックする。
区切り文字として「カンマ」を選択し、「次へ」をクリックする。
- 3.列のデータ形式に「文字列」を指定
-
勝手に変換をされたくない列の表示形式に「文字列」を指定し「完了」を押します。
- 4.データを取り込む「セル」を選択
-
データを取り込みたいセルを選択します。
これで、CSVデータをそのままの内容で取り込むことができます。
拡張子を「.txt」に変更して開く
拡張子を「.csv」ではなく「.txt」としてからエクセルで開くことで、文字列として取り込むことができます。
- 1.拡張子を「.txt」に変更
-
エクスプローラーなどを使って拡張子を「.txt」に変更します。
※もし、拡張子を表示する設定にしていない場合には、Windowsの設定を変更して拡張子を表示させてください - 2.エクセルから開く
-
あとは、普通通りエクセルの「ファイルを開く」画面からファイルを開きます。
まず、メニューから
「ファイル」→「開く」→「コンピュータ-」を選び、フォルダを選択します。次に、開きたいファイルを選択します。
このとき、右下のファイルの種類を選択する欄で「テキストファイル」を選択しておくと、ファイルを簡単に絞り込めます。 - 3.カンマ区切りデータとして取り込み
-
「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選択し、「次へ」をクリックする。
区切り文字として「カンマ」を選択し、「次へ」をクリックする。
- 4.列のデータ形式に「文字列」を指定
-
勝手に変換をされたくない列の表示形式に「文字列」を指定し「完了」を押します。
これで、CSVデータをそのままの内容で取り込むことができます。
テキストエディタで開きエクセルにコピー貼り付け
もう一つの方法として、テキストエディタでCSVファイルを開いたうえで、そのデータをエクセルにコピー・貼り付けする方法もあります。
- 1.メモ帳などのテキストエディタで開きます
-
エクスプローラーの「プログラムから開く」の機能を使って、メモ帳などのテキストエディタでCSVファイルを開きます。
- 2.全てのデータをコピー・貼り付けする
-
メモ帳で「Ctrl」を押しながら「A」を押して全てのデータを選択します。
そして、そのままエクセルに貼り付けます。
この段階では、A列にカンマ区切りデータが入力された状態になっています。
- 3.リボンから区切り位置を選択
-
リボンから「データ」→「区切り位置」を選択します。
- 4.カンマ区切りデータとして取り込み
-
「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選択し、「次へ」をクリックする。
区切り文字として「カンマ」を選択し、「次へ」をクリックする。
- 5.列のデータ形式に「文字列」を指定
-
勝手に変換をされたくない列の表示形式に「文字列」を指定し「完了」を押します。
これで、CSVデータをそのままの内容で取り込むことができます。
まとめ
エクセルの標準機能で、CSVファイルの内容が勝手に変わらないように取り込むためには、一手間かける必要があります。
もし、この業務負荷が耐えられないということであればマクロを組みましょう。
超簡単にCSVファイルを取り込めるVBAマクロ
超簡単にCSVファイルを取り込めるVBAのマクロを作成しました。
ぜひ、お試しください!