おはようございます。
くまおです。
本日のテーマはサクラエディタ。
データ解析時やデータ作成時に陥るcsvの罠についてお話しさせていただきます。

予期せぬエラーの原因にもなるので注意しましょう。
csvとtsv
あまり聞きなれないワードかもしれませんが、システム障害時のデータ解析や、テストデータ作成時にしばしば登場します。それぞれテキストファイルの種類を表す拡張子です。

かくちょうし?
新規のテキストファイルを作成すると、ファイルの名前の後ろに必ず『.txt』という文字が付きますよね。これが拡張子。Excelのファイルは『.xlsx』、写真は『.jpg』など、様々な拡張子が存在します。この拡張子を頼りに、コンピュータはどのアプリケーションでファイルを開くかを判断しています。変更しようとして、なにやら恐ろしげなメッセージが表示された経験はありませんか?


使えなくなると困るんだよ。いいえを選ぶのが正解なの?
特に変更する理由がないのであれば、いいえを選択しましょう。これは拡張子を変更することで、コンピューターがどのアプリケーションで開けばいいかわからなくなり、ファイルを適切に開けなくなってしまう可能性があることを警告してくれています。間違えて変更して開けなくなってしまっても、拡張子をもとに戻すことで、変更前と同じように開くことが出来るので安心してください。

名前を戻せば元通りなんだね!
それではcsvとtsvについて、txtとの違いを確認してみましょう。
- txt
txtとは、区切り文字のない文字だけのテキストファイル - csv(Comma Separated Values)
csvとは、カンマで区切られたテキストファイル - tsv(Tab Separated Values)
tsvとは、タブで区切られたテキストファイル

区切り文字によって分類されるんだね!
csvのデータ欠損
それぞれのデフォルトのアプリケーションを確認してみると、txtはメモ帳、csvはExcel、tsvは指定なしとなっていますね。

先ずはサクラエディタを使ってそれぞれのファイルを開いてみましょう。何れも同じデータのため表示される内容に変化はありませんね。

次にデフォルトのアプリケーションで開いてみましょう。csvはカンマを区切り文字、tsvはタブを区切り文字とみなすため、表示される内容に変化があることが分かります。※tsvはExcelを選択


あれ?0がないところがあるんだよ。
Excelは数字のみのデータをよしなに数値として扱うため、先頭の不要な0は削除して表示されます。そのまま特に編集はせずにファイルを保存して、先ほどと同じようにサクラエディタを使って、それぞれのファイルを開くとどうなるか見ていきましょう。

前後で比べてみると、先頭の0が欠損して、ダブルコーテーションやカンマ、タブといった情報が追加されてしまっていることが分かります。このように意図しないデータの変更が発生してしまいますので、基本的にテキストファイルはサクラエディタで編集することをお勧めします。
- カンマ区切りの固定長データを修正する時に、修正前後で桁数が不一致となり、アプリがアベンドしてしまった
- 4桁の業務コード別に集計結果を纏めた時に、0始まりの業務コードのデータが計上されていなかった
- 日付のフォーマットが変わってDBへのInsertが失敗してしまった。
もちろん集計や解析はExcelで開いた方が効率的な場面は多々ありますので、Excelで正しく開く方法については次の機会にご紹介させていただきます。
ログやテキストをデフォルトでサクラエディタで開く方法はこちらの記事を参考にしてみてください。
如何でしたか。csvとtsvファイルをサクラエディタで開きたくてうずうずしてきましたか?
皆様の日常に欠片でもプラスになれば幸いです。
それではまた。
コメント