エクセルはCSV形式(カンマ区切り)のデータを取り込むことができます。
一番手っ取り早い取り込みは、CSVファイルをダブルクリックして直接エクセルで開く方法です。
でも、時々エクセルの中に取り込まれたCSVが文字化けすることがあるんですよね。
これはCSVの文字コードが原因なんです。
このCSVを文字化けさせない方法は、「メモ帳」で一旦保存する方法と、『データ取り込み』の2つの方法があります。
- メモ帳でCSVを一旦保存して、文字化けさせない方法
- エクセルの『データ取り込み』(インポート)で、文字化けさせない方法
- CSVで文字化けする文字コード、文字化けしない文字コード
ここでは、文字化けせずにエクセルにCSVデータを取り込む方法を紹介します。
よくCSVデータが文字化けすることが多い人は、文字化けする原因と正しい取り込み方法を参考にしてください。
メモ帳でCSVファイルの文字コードを変換して文字化けを防ぐ
文字化けしない一番簡単な方法は、『メモ帳でCSVファイルを一旦保存』する方法です。
では、手順です。
文字化けが発生するCSVファイルをメモ帳で開いて、『CTRL』+『S』で強制的に保存するだけです。
これだけで、CSVファイルをダブルクリックしてもエクセルで文字化けが発生しなくなります。
なんで、文字化けが発生しなくなるかというと、保存することで『BOM無しのUTF-8』→『BOM付きのUTF-8』に変換されるからです。
エクセルは、文字コードが『BOM無しのUTF-8』だと文字化けが発生しますが、『BOM付きのUTF-8』の場合は文字化けが発生しません。
この方法は、メモ帳は『UTF-8』のファイルを保存するときには、必ず『BOM付き』で保存する仕様を利用しています。
頻繁にCSVから取り込む作業が多い場合は、こちらの方法が簡単でおすすめです。
もし、メモ帳で保存したCSVファイルが文字化けする場合は、『エクセルのデータ取り込み(インポート)でCSVを文字化けさせない』の方法を試してみてください。
エクセルでCSV開いた時に文字化けするパターン
世の中のコンピューターシステムで扱われる文字コードは沢山ありますが、日本の場合には代表的なものとして、『シフトJIS(SJIS)』、『UTF-8』、『EUC-JP』がよく使われます。
そして、PCなどのOSであるWindosで使われる文字コードは、『シフトJIS』が中心となっています。
そのため、CSVファイルの文字コードが『シフトJIS』であれば、CSVファイルのダブルクリックでもエクセルで文字化けが発生することはありません。
ただし、『EUC-JP』と『BOM無しのUTF-8』の文字コードでは文字化けが発生します。
ちょっとややこしいのが『UTF-8』で、この『UTF-8』には『BOM付きのUTF-8』と『BOM無しのUTF-8』の二種類が存在すること。
エクセルは『BOM付きのUTF-8』だと『UTF-8』コードと正しく認識するため、取り込みでも文字化けもせず正しく処理されます。
一方、『BOM無しのUTF-8』場合は、それが『UTF-8』だと認識されないため、結果的に文字化けが発生してしいます。
つまり、『UTF-8』の場合には、『BOM付き』では文字化けが発生、『BOM無し』では文字化けが発生しないという、ややこしいことになります。
CSVで文字化けする文字コート、文字化けしない文字コード
文字コードと文字化けの関係をまとめると、次のようになります。
CSVファイルの文字コード | エクセルでの文字化け |
---|---|
シフトJIS(SJIS) | しない |
UTF-8(BOM付き) | しない |
UTF-8(BOM無し) | する |
EUC-JP | する |
これから、文字コードが『BOM無しのUTF-8』になっているCSVを、文字化けせずにエクセルに取り込む方法を紹介します。
テキストエディタを使ったCSVファイルの文字コード判別
CSVファイルの文字コードを調べたい場合は、テキストエディタでCSVを開いて確認する方法が簡単です。
フリーのテキストエディタである『サクラエディタ』を使ってCSVファイルを開くと、下の方のステータスバーに、開いたCSVファイルの文字コードが表示されます。
こちらは、有名な『秀丸エディタ』の場合。
『秀丸エディタ』の場合は、『UTF-8』のBOM付き、BOM無しはステータスバーだけではわかりません。
その場合は、文字コードのところをマウスで右クリックすると、メニューでわかるようになっています。
見ての通り、『BOM』にチェックがついていると『BOM付き』、チェックがついていないと『BOM無し』となります。
エクセルのデータ取り込み(インポート)でCSVを文字化けさせない
では、文字化けする『BOM無しのUTF-8』を取り込んで、文字化けさせないようにする方法です。
リボンの『データ』タブをクリックし(①)、『外部データの取り込み』にある『テキストファイル』をクリック(②)
CSVのデータは基本的に現在のカーソル位置に取り込まれるため、取り込み先となるセルをあらかじめクリックしておきます。
(取り込む段階で変更はできますけどね)
ここで、取り込みたいCSVファイルを選択し(①)、『インポート』をクリック(②)
ここでは、『カンマやタブなどの、、、』のチェックと、CSVの内容が文字化けしていないことを確認し、『次へ』をクリック。
次に、CSVはカンマ区切りであるため『カンマ』のみにチェックをつけ、『次へ』をクリック。
最後に、『完了』を押すと、エクセルのシートにCSVが取り込まれます。
上の画像にも書いているように、『1/1』や『1-1』のようなデータはエクセルに取り込んだ時点で勝手に日付に変換されます。
そういうデータがない場合は、『列のデータ形式』は『G/標準』のままでOK。
最後に、取り込み先となるシートや、セルの位置を確認するダイアログが出ますが、変更がなければそのまま『OK』をクリック。
これで、文字化けせずにエクセルの中に取り込むことができます。