スタッフブログ

CSVファイル形式の落とし穴

2020年10月10日 スタッフブログ 平川 開発 

平川です。
 
 
こんな記事を見つけましたのでご紹介したいと思います。
 
新型コロナの陽性結果を「1万6000件」少なくカウント 英国公衆衛生庁のExcel形式が古いことが原因か
https://news.yahoo.co.jp/articles/7b1f17df36c8e41bd69a4361c0403f367eedbd71
 
 
イギリス各地の医療機関から送られてくる検査結果を管理している公衆衛生庁の発表によると、
古いエクセル形式の使用が原因で1万6000件ほどの報告漏れが発生してしまったそうです。
 
医療機関から送られてきたCSVデータが古いエクセル形式では扱えないほどのデータ量で、
そうとは知らずに編集・保存をした結果、扱いきれない分のデータが消失してしまったようです。
 
古いエクセル形式では、現在の形式(1,048,576行)よりはるかに少ない65,536行が
扱えるデータ量の限界となっていますが、CSVデータにはそれを超える件数のデータが
保存されていたようですね。
 
 
そもそもCSVとは「Comma Separated Value」の略で、異なるシステム間での
連携によく使用される「カンマ区切り」で保存されたデータの形式です。
我々システムエンジニアにはお馴染みのものです。
 
 
内容は至ってシンプルで、↓のような文字だけのデータの集まりとなっています。

No,コード,氏名,生年月日
1,000001,東埼太郎,2000/01/01
2,000002,東埼次郎,2000/01/01
3,000003,東埼三郎,2000/01/01
 ・
 ・
 ・

会社や自宅のPCでソフトを使用していると、CSVファイルを使用して
他のソフトからデータをインポートする、なんて機能も良く見かけますね。
 
 
ただし、エクセルで開くことができるばかりに、それが原因で発生するトラブルが多いです。
有名なのは「0落ち」と呼ばれる現象で、「000001」のようにゼロで始まるコードや電話番号などを
エクセルが数値と認識してしまい、保存する前後で異なる値になってしまうものです。
 
エクセルで編集したCSVファイルをシステムにインポートしようとしてよくエラーが発生するのは
これが原因であることが多いです。また「1-1-1」と入力されいるものが「2001/1/1」と勝手に
認識されてしまったりもします。
 
 
公衆衛生庁の方もまさかこんなことになるとは思ってもみなかったでしょうね。
CSVファイルの扱いはトラブルが多いのでこう認識しておくと良いと思います。
 
 
 
CSVデータはエクセルデータではない。
たまたまエクセルで開けるだけで、編集するとロクなことが起きない。
 
 
トラブル回避のため是非とも覚えておきたい知識です。