データのやりとりはcsv形式(カンマ区切り)、という方が多いと思います。csvファイルをダブルクリックすると、Excelと関連づけられていて、Excelが起動するマシンがほとんどですよね。ここにワナがあります。csvファイルをExcelで開くと、データが壊れる可能性がある、ということを皆様ご存知でしょうか?
壊れる可能性のあるデータの代表格は、
- ゼロつき数字のセル(「00001」など、ゼロからはじまるもの。Excelで開くと、数字型として認識されて0が消えてしまう)
- 「2-2-3」など、数字とハイフォンやスラッシュのみで構成されているセル(「住所の番地のみ」のセルなどで、数字とハイフォンだけ、などだと、日付形式として認識され、番地が日付に解釈されてしまう)
- カッコで囲まれた数字のみのセルはマイナスになってしまう(「(5000)」は「-5000」に)。
値をみてExcelが勝手にデータを、数字型だの日付型だのに解釈してしまって、データが壊れてしまうわけなのです。もらったそのままのデータの中身をみるだけなら、セルの表示書式は「文字列」でなければならないのです(ただし、文字列の書式だと、計算などはできなくなります。あくまでも「文字列」で数字ではないので)。
Excelでデータを確認して、「上書き保存」などされれば、完全にデータは壊れてしまうわけです(0落ちはともかく、日付変換などは致命的)。このテの事故は大変に多いですね。以下、csvファイルに対するお作法。
大前提としては、拡張子を変更しなければならないので、拡張子を表示しているマシンってトコですね。拡張子ってナニ?!という方はまずは拡張子の表示、隠しファイルの表示で、マシンを拡張子表示状態にしてください。Macは…。わかりません。
- 事故防止対策:Excelとcsvファイルの関連付けを外す(Winでのやり方)
Excelをインストールすると、Excelとcsvファイルが関連付けされるので、まずはこれを解除します。
- エクスプローラを起動。
- [ツール]→[フォルダ オプション]→[ファイルの種類]→[登録されているファイルの種類]の中から拡張子[CSV]を選択。
- 下段[拡張子'CSV'の詳細]→[変更]→[プログラム]の中から、利用しているエディタを探す、もしくは[参照]。→[OK]
以上で、CSVとエディタへの関連付けに変更されます。ハッキリいってデフォルト設定でCSVとExcelを関連付けていても、経験上、役に立つことはほとんどないと思いますので(紛らわしくて事故の元)、外した方が賢明だと思います。
- 具体的なExcelでのcsvファイルの取り扱い方
-
- [*.csv]というファイル名を[*.txt]ヘ変更。
- Excelを起動。
- [ファイル]→[開く]→csvファイルを選択。→[開く]
- [カンマやタブなどの区切り文字によって…]にチェック→[次へ]
- [区切り文字]で[カンマ]にチェック→[次へ]
- [データのプレビュー]で、文字列型のフィールドを選択して[列の選択]で[文字列]にチェック(全フィールドの選択も可。私は大抵、データを壊したくないので、とりあえず全フィールドを文字列にして、開いて中身を確認する、というパターンが多いです)→[完了]
ちなみに、ファイル名をtxt名に変更しないと、セルの書式を選択するウィザートが起動しません。
以上がオーソドックスな開き方。
他に、似たような手順としては、[データ]→[外部データの取り込み]→[テキストファイルのインポート]で拡張子を選ぶ[ファイルの種類]のボックスで[すべてのファイル(*.*)]を選択して、任意のCSVを選ぶという方法(その後は[カンマやタブなどの区切り文字によって…]という上記の手順と一緒)もあります。
CSVファイルをエディタで開いてコピー、Excelに貼り付けて、[データ]→[区切り位置]を選択して、[カンマやタブなどの区切り文字によって…]以降の手順に入る方法もあります。
少し気の利いたエスケープシーケンスを利用できるエディタ*1をお持ちの方でしたら、カンマをタブ区切りに変換。Excelのセルの書式を文字列にしておく、エディタのタブ区切りデータをコピーしてExcelに貼り付け、という方法などもOKです。
そんなこんなで、csvファイルよりタブ区切りのデータの方が、好ましいと私などは思っていますが、世の中はcsvファイルが主流ですからね。仕方ありません。
データに0つき数字などのあるcsvファイルで、スタートの私たちから仲介役を渡ってエンドまでの距離が長い場合や、事前に取り扱い方の注意をいくらうながしても、「この人、どーもわかってないな…」と危険を感じるとき、わざと拡張子をtxtにしてファイルを受け渡すこともあります。そうすると大抵素人さんは「Excelでファイルが開かない!」と大騒ぎして、データ作成元のこちらに問い合わせしてくるので、そのタイミングで"待ってました"とばかりに、電話で開き方講座をリモートコントロールして行なうわけです。csv取り扱いのマニュアルをつけようが、事前に注意を促そうが、現実に困るまでは、何を云われているのかわからない人はわかってはくれませんので、拡張子を変えてしまうのが、相手のレベルも測れて、意外と安全なんですよね…。
2 件のコメント:
とても魅力的な記事でした。
また遊びに来ます!!
地番が日付になって困ってたどり着きました。
なるほど!
csvのやりとりなのに、なぜ「.txtで保存して!」といわれるかわかりました。ありがとうございました。
コメントを投稿