仕事をしている時に、CSVデータをExcelで一気に追加等したい時がありました。
しかし、CSVファイルをExcelで開くとExcelは自動で書式を変更してしまいます。
そのため、「0001」をそのまま表示し編集したくても数値と解釈され、「1」となってしまいます。
今回はセルの書式が変更されず、元の書式のまま操作する方法を記載します。
これはExcelの標準機能のみで出来るので大変便利で、私も連続データの作成等でたまに利用します。
実行環境は下記になります。
Excel2019 | Windows10 home 64bit |
Excel2016 | Windows10 home 64bit |
今回使用するCSVファイル
testData.csv
現在のExcel標準である「テキストまたはCSVから」取り込む方法
1.データタブから→データの取得と変換→テキストまたはCSVからを押下します。
2.インポートするcsvファイルを選択して、インポートボタンを押下する。
3.読み込んだデータの編集画面が表示されます。
4.データ型検出のセレクトボックスでデータ型を検出しないを選ぶ。
5.読み込みまたはEnterを押下する。
そうすると読み込んだCSVファイルのデータがExcelに表示されます。
6.CSVファイルが読み込まれましたが、ここで追加したりしても書式が引き継がれることがなく、値が変わってしまいます。
そもそもいつの間にかアップデートがかかっていて、テキストまたはCSVファイルの取り込み時の画面が変わっていた。(手順3の画面)
そのため、この画面からはCSVファイルを上手く編集することが出来なくなってしまいました。
そんな時はExcelに残っているレガシ機能を使用することで解決できます。
Excelのレガシ機能の「テキストから」取り込む方法
勝手にアップデートされていたため、昔の機能が新しくなって使い辛くなっていました。
下記の記事もそうでした。
そしてその解決方法は下記の手順を実施することで解決できます。
1.ファイル→オプションを選択すると、Excelのオプションが表示されます。
2.データ→レガシ データ インポート ウィザードの表示の「テキストから(レガシ)(T)」にチェックを入れOKボタンを押下する。
3.データタブ→データの取得を選択して、従来のウィザード→「テキストから(レガシ)(T)」を選択し、インポートするcsvファイルを選択してインポートボタンを押下する。
4.テキスト ファイル ウィザード画面が表示されます。
5.元のデータの形式のデータのファイル形式を選択してくださいが「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」にラジオボタンがチェックされていることを確認する。
6.今回は先頭行はヘッダー情報ではないため、「先頭行をデータの見出しとして使用する」にチェックを付ける必要がありません。ヘッダーがあるCSVファイルを読み込むときは、取り込み開始行を変更するか、先頭行をヘッダー行として使用するようにしてください。
7.次へボタンを押下します。
8.区切り文字のチェックボックスをタブからカンマにチェックに変更します。
9.次へボタンを押下します。
10.データのプレビューで例のように自動で数値の初期にしたくない時は、したくない列を選択します。
例:自動で0001等が1になってしまうため、0001が文字列として読み込むようにする
11.選択したら、列のデータ形式で文字列のラジオボタンを選択します。
データのプレビュー内の上記で選択した列の書式が文字列に変更されたと思います。
12.データの形式の設定が完了したら、完了ボタンを押下します。
13.データの取り込み画面でデータを出力するセルを選択して、OKボタンを押下します。
14.これで、最終行に新たに追加したい時とかは上の行をコピーして変更すれば書式が保持されて変更することが出来ます。これは上のオプションでやらないと出来ません。
15.11行目に追加します。
追加すると今回の例では数値にならず、文字列になっていると思います。
16.あとは保存する際はcsv形式にして元のファイルに上書き保存すれば完了です。
変更がしっかり反映されていました。
まあ、昔の取り込み機能の方が私は使いやすいです。(笑)
まとめ
どうだったでしょうか。これからはExcelでCSVファイルを開いたときに一々セルの書式を変更しないでファイルの編集が可能になったかと思います。
地味にセルの書式を変更するのが面倒だったので、私はこの方法で回避しています。