csv扱い方をまとめてみる

2018年5月16日

csvとは

「comma separated value」の頭文字で、「カンマ区切り」のこと。テキストファイルなのでテキストエディタ(たとえばメモ帳)で中身が見えるし、直接変更できる。

csvとxlsxとxlsの違い

通常はダブルクリックすると両方Excelが立ち上がるが、中身は全然違う。

  • csv・・・Excelに関連付けられているだけで、あくまでもテキストファイル。
  • xlsx・・・Excel専用の形式なので、Excelでないと編集できない。
  • xls・・・同じくExcel専用の形式。ただし2011以前の古いバージョン。

csvとtxtの違い

中身は同じテキストファイル。ダブルクリックで開いた時にメモ帳(テキストエディタ)で開くか、Excelで開くかはファイルの形式ではなく拡張子に関連付けられているだけなので、csvをテキストエディタで開く(あるいはtxtをExcelで開く)ように設定すれば同じように動く。

txtファイルをcsvファイルに変換したい

拡張子を変えても中身に影響はないので、右クリック→「名前を変更」(ショートカットキーはF2)で拡張子を変えてしまえばよい。ただしカンマ区切りになっていないとExcelで開いても1列に収まってしまうので、置換などでカンマ区切りに変更する必要がある。

csvとtsvの違い

c(カンマ)の替わりにt(タブ)で区切られているテキストファイル。

tsvをcsvに変換したい

1.タブをカンマに置換し、2.拡張子を変更する。順番はどちらでもよいが、拡張子だけを変えても中身は変わらない。

Excelで開くと頭の0が消える原因と対処法

原因

csvがExcelに関連付けされていると、ダブルクリックした際に直接Excelに読み込まれるが、数値と認識された場合に先頭の0が消える。たとえば、店舗コード「0023」は数字の「23」となる。

対処法1:文字列として読み込む

通常はこの方法。「データ」→「テキストファイル」でファイルを指定し、必要な列を文字列として読み込む。

対処法2:数字と認識されないようにする

店舗コードの先頭に文字列をつけて「X0023」としておけば文字列として認識される。ただし勝手に形式を変えると次の作業をする人が困ることが多々あるので、変更でどれだけ影響がでるかは事前に確認すること。

対処法3:text関数で桁を補完する

text関数で0を補完する。

対処法4:文字列結合で桁を補完する

足りない分の0を結合する。ただし桁数が違う場合度修正するとになるので2・3つならともかくそれ以上のパターンがあるなら使わない方が無難。

カンマがデータの中にある場合の対処法

基本的に対処法はない

データを作り直し(誰かにもらっているならだし直しの依頼)が必要。なぜかといえば、csvファイル内の全てのカンマは区切りのカンマとして認識するから。「1,000」というデータが区切りのカンマなのか、桁区切りのカンマなのかはコンピューターには区別できない。

違いが明確な場合は力技で出来なくもないが、やり直してもらう方が無難

区切りのカンマではないと認識できるような場合Excel上で加工することで修正できる場合もある。「氏名,売上」というデータがcsvファイルにあった場合、B列以降が数値であることは理解できるので、読み込んだあとにばらけてしまったB列以降を結合しすればよいが、これは出しなおしていると時間がないという緊急かつ、区別が明確で間違えないと言う場合の最終手段。

tsvにする

実はタブではなくても区別がつけばよいので(たとえば「||」など)区切り文字を変えればよいが、これもすでにcsvになってからでは手遅れなのでその前の段階まで戻る必要がある。

なぜこれを書いたか

日常的に使われるcsvファイルだが、新入社員はもちろん社会人生活が大分長い人でも扱い方を知らない人が結構いるし、自分も知っているつもりでもいざ聞かれると適格にこたえられているかといわれると怪しい。そこでcsvについて改めて学び直し、「csvで困ったらここを見て」といえば済むようなページがあればいいなということで作ってみた。