Excelにはとおしちゃいけない

 Microsoft社の表計算ソフトExcelは、もう何年も前から表計算ソフト界における代表的なソフトウェアとして君臨しており、そのせいもあって、WebサイトでデータをダウンロードしようとするとExcelファイルで落ちてくるなんてことも頻繁だ。それこそ、CSVでも充分、というか、その方が妥当だと思うのに、Excelで提供されている。それが一般企業ならまだ我慢もするが、官公庁のサイトでこういうことをするというのはいったいどういう料簡だろう、というのは今回の趣旨ではないからちょっと置いておこう。

 今や事務においてコンピュータは不可欠のものとなって、主に利用されるものといえばワープロや表計算ソフト。で、大抵のところではWordやExcelが使われていて、このふたつ、結構ちゃんと使うと便利な機能もたくさんあって、さすがにシェアを広げているのもうなずけるものなのだが、しかしその反面困った性質もあるんだね。ほら、よくWord / Excelのおせっかい機能なんていわれたりするやつだ。オートコレクトが働くおかげで、勝手に文言が書き換えられてしまうというケースに遭遇したことはないかい? この機能は本当に便利なのかどうか。少なくとも私の身の回りで、これをありがたがっている人間はおらず、だからみんなオフにしている。一番最初にオフにする項目というのがこれという人もどうやら少なくないようだ。

Excelのおせっかいがデータを台無しにする

 私の職場では、おそらく多くの事務の現場と同様、データベースというものが利用されていて、大量のデータを扱う場合にはデータベースを利用するほうが効率の面でもコストの面でも有利だというのは同意してくださる方も多いのではないだろうか。しかし、このデータベースというのは、特にリレーショナルデータベースというものは敷居が高いようで、だから大量のデータを処理する際にCSVに書き出して確認、処理後、データベースにインポートするなんてこともおこなわれているようで、実は私はこういう作業を妙に不潔と感じてしまうのだが、しかし横行しているのはしかたがない。だって、仕事というのはきれい汚い関係なしに、とにかく片づけていかなければならないものであるからだ。だから手段は問わない。その時点において、可能な方法でやっつけるのが正しいという側面は確かにあるのだ。

 だが、そのCSVに書き出してというのが問題なんだ。Excelをインストールすると、CSVファイルはExcelに関連付けられるのだが、つまりCSVファイルをダブルクリックするとExcelで開かれる。確かにCSVはテキストエディタで見るには不向きで、Excelが便利だというのはわかる。効率的であるのも間違いないだろう。しかし、Excelはここでもやらなくていいことをやって、データを台無しにしてくれるのだ。

 IDなんかを作成する際に、頭を0埋めして桁数を固定した数字を使うということは普通にあり得ることだろう。あるいはIDなんかでなくとも、頭に0がくるデータなんてのは普通にある。国際標準図書番号(ISBN)においては先頭に国番号を置くのだが、この国番号、0と1が英語圏に割り当てられている。つまり、洋書を扱う現場においては、先頭に0がくるデータが大量にあるということだ。そして、ハイフンで区切らないということも普通にある。そこでだ、こうしたデータを含むCSVファイルをExcelで開いたらどうなるか。そう、データがおかしくなるのだ。

 単純な話で、Excelは数字だけで構成されているフィールドを勝手に数値と判断してくれて、頭の0を取っ払っちゃうのさ。そのせいでデータベースにインポートしたらリレーションが駄目になって使い物にならなくなることは頻繁に生じて、おかしくなったから見にきてくれといわれてのぞいたら、0がなくなってる。データをExcelにとおしたりしませんでしたか? ああ、ちょっと修正する必要があったからExcel使ったよ。しかたがないから、文字列の長さを判別する関数を使って頭に必要数の0を加えていくんだが、はっきりいってこういうことが起こる仕様になっているというのはおかしいんじゃないんだろうか。

 そもそもExcelは、ユーザーが明示的にこれは数値だ、これは文字列だと指定するまではデータをオリジナルのまま保持するようにすべきだろう。勝手な判断でデータをいじくるというのはソフトウェアの仕様としては最低だ。だから、CSVファイルはExcelにとおしちゃいけない。とおしちゃいけないんだよ。


わたしの愛した機械へ トップページに戻る

公開日:2006.02.26
最終更新日:2006.02.26
webmaster@kototone.jp
Creative Commons License
こととねは、クリエイティブ・コモンズ・ライセンス(表示 - 継承 2.1 日本)の下でライセンスされています。