TrailCam

ガイド

GPS の軌跡を書き出した CSV ファイルが、Excel で開くとおかしく見えるのはなぜか

おそらくファイル自体は壊れていません。CSV はただのテキストで、カンマで値の区切りを示しているだけの、どのプログラムが開くかをまったく気にしない形式です。だからこそ、開く側のプログラムが持つ思い込みから自分を守るしくみを何も持っていません。Excel は「カンマが何を意味するか」と「長い小数がどう見えるべきか」について独自の思い込みを持っていて、GPS の座標がぎっしり並んだファイルはそのどちらにも正面からぶつかります。起きる問題のほとんどは二つのことで説明でき、どちらも原因は書き出したファイルではなく Excel の側にあります。

短く答えると

起きる問題は主に二種類あり、原因はそれぞれ別です。ひとつはファイル全体がまったく分割されずに一列に収まってしまう場合、もうひとつは列の分割自体はうまくいっても、座標が本来書き出された値とは違う、短く丸められたような数字として表示されてしまう場合です。前者は、CSV が値を区切るのに使っている文字と、Excel が区切り文字として想定している文字が食い違っていることが原因です。後者は、Excel の汎用的な数値の表示形式が、GPS の座標かどうかにかかわらず、長い小数に対していつも行っていることの結果です。どちらも、もとのデータそのものが間違っているという意味ではありません。

ファイル全体が一列にまとまってしまう理由

CSV は「カンマ区切り値」の略で、多くの書き出しファイルでは実際にカンマがひとつの値と次の値の境目を示しています。ところが Excel は、ファイルを直接開いたときに、必ずしもカンマをその境目として扱うとは限りません。どの文字を区切りとして想定するかは Excel の地域設定によって決まっていて、米国以外の多くの地域では、その文字はカンマではなくセミコロンです。そうした地域ではカンマがすでに小数点として使われているため、列の区切りとして二重に使うわけにいかないからです。そうした設定のシステムでカンマ区切りのファイルを開くと、Excel は律儀にセミコロンを探しにいき、見つからないまま「この行は全部でひとつの値だ」と結論づけてしまいます。結果として、書き出されたすべての列が、カンマで区切られたまま分割されずに A 列だけに押し込まれます。

これは GPS のデータに限った話ではありません。カンマを小数点として使う設定のシステムでは、どんなカンマ区切りファイルでも同じことが起きます。名前と価格が並んだ表であっても、座標とタイムスタンプが並んだ表であっても変わりません。

座標が丸められた、短くなったように見える理由

列がきちんと分割されたあとでも、座標が書き出したときより短く見えることがあります。書式を指定していない数値として開くと、Excel は列の幅や、一度に表示する桁数の上限に合わせて自動で調整する「標準」書式を当てます。小数点以下が何桁もある緯度や経度は、セルが「見た目のすっきりした数字」を優先して表示しようとした結果、視覚的に切り詰められたり、実際のファイルに含まれる桁数より少ない桁に丸められて見えたりすることがあります。列の幅を広げるか、セルの書式を文字列に変えれば元の値がそのまま表示されます——もとの数値そのものが変わったことは一度もなく、Excel がそのうち何桁を見せるかを選んでいるだけです。

この表示上の省略は、上で説明した一列問題とは別の原因によるもので、どちらもよくお互いのせいにされます。列を正しく分割したからといって座標の表示が直るわけではなく、表示の問題を直したからといって、そもそも分割されなかった列が直るわけでもありません。

座標ファイルをどちらの問題も起こさずに取り込む方法

両方の問題を一度に避ける確実な方法は、ファイルをダブルクリックで直接開くのではなく、取り込む操作を使うことです。取り込みなら、Excel に推測させるのではなく、読み方をこちらから指定できます。テキストや CSV からデータを取り込む機能を使えば、地域設定にかかわらず区切り文字を明示的にカンマへ設定できますし、座標の列を「標準」ではなく「文字列」として指定すれば、取り込みの途中で書式が変わったり、丸められたり、別の意味に解釈されたりすることがなくなります。文字列の列はファイルの中身を一文字ずつそのまま表示するので、見た目のきれいさより桁の正確さが大事な座標のような値には、いちばん安全な設定です。

取り込み操作がすぐに使えない場合、一列問題のほうだけを手早く回避する方法として、まずテキストエディタでファイルを開き、区切りのカンマをすべてセミコロンに置き換えてから Excel で開くというやり方もあります。ただしこれは、値そのものの中に本来のカンマが含まれていない場合にしか使えませんし、表示の丸め問題にはまったく効きません。

勘違いしやすいところ

  • ファイル全体が一列に収まってしまうのを見て、書き出し自体が壊れていると思い込む——ほとんどの場合、これは Excel の地域設定による区切り文字の食い違いであり、ファイルが壊れているわけではありません。
  • テキストエディタで開くと問題なく見えるファイルを、データのほうがおかしいのだろうと考えて編集し、上書き保存してしまう——テキストエディタは区切り文字や数値の書式について何の思い込みも持たないからこそ、そのまま正しく表示されているだけです。
  • セルの中身が普通のすっきりした数字に見えるからといって、座標をそのまま信用する——その「すっきりした見た目」こそ、標準書式が静かにやったことである場合が多く、表示されている桁をあてにする前に、数式バーで実際の中身を確認しておく価値があります。
  • 列の分割を直したことで、丸められて見えていた数字も正しくなったと思い込む——この二つの問題は原因が別なので、それぞれ別に直す必要があります。

TrailCam の場合

TrailCam は、任意の TrailCam Pro を使うと、ルートを CSV として書き出せます。GPX が読めるところならどこへでもアップロードできる GPX 1.1 での書き出しも合わせて使えます。どちらの書き出しも、あとで何が開くかによって中身の形を変えることはありません。同じファイルが別のプログラムでは何の問題もなく開けるのに、あるプログラムでは分割がおかしかったり数字が丸められて見えたりするのは、開いた側の地域設定や数値の表示形式がそう見せているだけだからです。TrailCam 自体はダウンロード無料です。

よくある質問

GPS の CSV ファイルが Excel で一列にまとまってしまうのは、書き出しに失敗したということですか?
いいえ。ほとんどの場合、ファイルが実際に使っているカンマとは違う区切り文字を Excel が想定しているだけで、これはファイルの不具合ではなく地域設定によるものです。区切り文字を明示的にカンマに指定して取り込めば直ります。
座標が、期待していた数字より短く表示されるのはなぜですか?
Excel の既定の数値書式は、列の幅に合わせて表示する桁数を調整するため、セルに実際に入っている桁数より少なく表示されることがあります。取り込みの前後で座標の列を文字列として指定すれば、ファイルどおりの値がそのまま表示されます。
これらの問題によって、もとのデータ自体が書き換わってしまうのですか?
いいえ。どちらも Excel がファイルをどう表示するか、どう分割するかという話であって、ファイルに保存されている値そのものの問題ではありません。もとの数値は、どのプログラムがどう表示しようとしていようと、ファイルの中にそのまま残っています。

自分のルートを記録する

TrailCam は iPhone 用の GPS ルート記録アプリです。動画・写真・音声メモを撮ったその地点に紐づけて保存し、GPX 1.1 または CSV で書き出せます。ダウンロードは無料です。

App Store でダウンロード