【Excel】CSVファイルとは?Excelで正しく取り込む方法も紹介!

仕事などで CSV ファイルを取り扱うことがあると思いますが、Excelで開くと0が消えてしまったり、文字化けしてしまったり・・・などと、うまく行かない経験をした方も多いと思います。

今回の記事では、CSVファイルをExcelで適切に取り扱う方法について紹介したいと思います。

そもそもCSVファイルとは何か?

そもそも、CSVファイルとは何でしょうか。

エクセルといっしょですよね?色とか罫線とかはないけど。

ぶっぶー。はずれで~す。

ファイルのアイコンとかも違うじゃん(笑)

Excel用のファイル形式だと思っている人を見かけますが、Excelファイルではありません。多くの場合、Excelファイルとそっくりのアイコンになっていて、ダブルクリックするとExcelが開くので、こういった勘違いがうまれています。

似てるから仕方ないけどね・・・

CSVとは、Comma Separated Valueのことで、その名の通りカンマで区切られた値のデータのことです。

実際のデータはこんな感じです。確かにカンマで区切られていることがわかります。(ファイルを右クリック → プログラムから開く → メモ帳 で開けます)

各データがカンマで区切られている

カンマで区切っただけのとてもシンプルな形式なので、汎用性が高く、ほとんどどんなシステムでも取り扱いが可能です。そのため、異なるシステム間でのデータのやりとり等に使われてたりします。

いやいや、僕がCSVファイル開いたらこんな見た目じゃないし。

多くのパソコンの場合、CSVファイルをダブルクリックするとExcelで開くように標準設定されています (関連付けと言います) 。そのため、CSVファイルの中身と言ったら、以下の画像のようなイメージの人が多いのです。

大体の人のイメージはこっちですね。

これは、ExcelがCSVファイルを読み込んで、表形式に整えて表示してくれているだけなのです。

私たちが知らないうちに、Excelが気を利かせてくれてたってことね。あれ・・・何か違和感があるような・・・?

そういうことです。でも、Excelの(余計な)気遣いのせいで、問題が起きるケースが結構あるのです・・・

ExcelでCSVを開くと発生する問題

先述のように、Excelは、CSVファイルを見やすく表形式で表示してくれるので非常に便利なのですが、問題が起きるケースがあります。代表的な例を紹介します。

0落ち問題(0が無くなってしまう)

かなりよく見かける問題ですが、ExcelでCSVファイルを開くと、0(ゼロ)が無くなってしまうことがあるのです。

Excelのいらぬ気遣い

この例だと、顧客番号をExcelが「数値」だと判断して、頭の0を消してしまいました。また、生年月日を「日付」だと判断して、月の “01” を “1” に、日の “05” を “5” にしてしまいました

他の部署からもらったデータ、ゼロが無くなってたのはこういうことか・・・

予想外の型変換問題

0落ち問題ほどは見かけませんが、想定外の型変換が行われてしまうことがあります。

もはや気遣いという域を超越している・・・

きっと、これ以外にも色々なケースがあると思われます。

(参考)文字化け問題

これは、「Excelのいらぬ気遣い」とはちょっと毛色が違いますが、文字化けしてしまうケースもあります。

文字コードについては解説が難しいので省略しますが、この世の中にそこそこ存在している「UTF-8(BOM無)」の形式のCSVファイルを開くと文字化けします。

CSVファイルを正しく読み込む方法

さて、CSVファイルを単純にExcelで開くと、問題が起きる場合があることがわかりましたでしょうか。

ここからはその対策、つまり、CSVファイルを正しく読み込む方法をいくつか解説します。

Excelの標準機能で読み込む

まずは、Excelの標準機能のみを使用する方法です。(なお、この手順はOffice 365の現時点での最新バージョン(Excelバージョン1902) のものとなります。別のバージョンのExcelをご利用の場合は手順が異なる場合があります。)

データ → テキストまたはCSVから
取り込むファイルを選択 → インポート

この後の手順は、取り込むCSVファイルの1行目が、項目名になっているか、データになっているかで若干異なります。

1行目がデータから始まるCSVファイルの場合(簡単)

1行目が項目名ではなく、データから始まるCSVファイルの場合は、簡単手順で取り込みが可能です。

データ型を検出しない を選ぶと 0落ち等が発生しない
これだけで取り込みOK

1行目が項目名になっているCSVファイルの場合

1行目が項目名になっている場合は、もうひと手間かかります。と言っても、難しくはありません。

データの変換
変更された型 の左の×を押す
ゼロ落ちの解消を確認し、「閉じて読み込む」
取り込み完了

<注意>「取り込んだ」というより「リンクした」と考える

この手順でCSVを取り込んだ場合、データの本体はあくまでも「.csv」のファイルとなります。Excelファイルは、「.csv」のファイルを表示しているに過ぎません

今回の例でいえば、「顧客情報.csv」のデータを修正して、取り込み先のExcelファイルのデータを「更新」すると、csvの変更内容がExcelに反映されるので注意してください。

CSVファイルの変更が反映される

取り込み元のCSVファイルとの連動を解除するには、クエリの削除を行います。

データを選択している状態で「クエリ」→「削除」

Excelアドインの「Excel CSV I/O」を利用する

「あるSEのつぶやき・改」というブログを運営されている fnya さんが作成された、Excel CSV I/O というアドインが大変便利です。

ページが見つかりません

インストール~使用までの方法は以下のとおりです。

窓の杜からダウンロード
zipを開き、ExcelCsvIO.xlam をコピー
C: > ユーザー > [ユーザー名] > AppData > Roaming > Microsoft > addIns に貼り付け
Excelを開き ホーム → オプション → リボンのユーザー設定 → 「開発」にチェック し OK
開発 → Excelアドイン → ExcelcsvioにチェックしOK

ここまでで、CSV I/Oのインストールと利用準備が完了しました。

早速、実際にCSVを取り込んでみます。

CSV I/O → インポート → インポートボタン
CSVファイルを選択してインポート
取り込み完了

CSV I/O はインストール作業が必要なものの、非常に簡単にCSVの取り込みができます。更に、CSVファイルを書き出すことも可能なのでおすすめです。

(番外編)そもそもExcelを使わない方法

今回の記事は、ExcelでCSVファイルを扱う前提で執筆していますが、そもそもExcelを使わないという発想もありだと思います。

私のおすすめは あすかぜさん という方が作成された、Cassava Editorというフリーソフトです。

窓の杜
「Cassava Editor」表計算やマクロ機能を備えるCSVエディター

ダウンロードして「Cassava.exe」を実行するだけという手軽さもGOODです。

シンプルでとても使いやすい

Excelほどの機能はありませんが、CSVをパパっと確認したり、修正したりする用途であれば十分です。

まとめ + 補足(この記事の例と別バージョンのExcelの場合)

いかがでしたか。CSVの取り扱いについて、参考になれば幸いです。

補足ですが、この記事で解説したExcelと違うバージョンを使っている方は、データの取り込み時に全く違う画面が出てくると思います。その場合におすすめの記事を紹介させていただきます。

CSVファイルをエクセルで安全に開く方法 | ECサイトの在庫,受注,発注管理 | ネットショップ管理ならネクストエンジン

また、私と同じ環境でも、別バージョンの機能が利用できるようです。こちらもおすすめ記事を紹介しておきます。

\ Excel2016 「外部データの取込」画面が違う!?/
  ↑ 先月末あたりから   Excel2016の「データ」タブにあった   こ

コメント

タイトルとURLをコピーしました