はじめに
こんにちは!
なぜか突然、中耳炎になってしまったノベルワークスのつつみんです。痛いので、みなさんもお気をつけください…
新年度を迎えて、アプリの整理に伴うデータ移行やデータの整頓作業などが発生していませんか?
私は最近、kintoneのデータをCSV形式でエクスポートし、それをExcelで開いたところ、勝手に型が変換されてしまうという事態に直面しました。地味に困るやつですよね…
というわけで今更感はありつつも、今回は、「CSVファイルをExcelで開くと自動で型変換されてしまう問題」について、調べたことを備忘録としてまとめておきます
データ移行や取り込み作業の際に、同じような悩みを抱えている方の参考になれば嬉しいです!
なぜ型が勝手に変わるの?
ExcelがCSVを開くときの自動処理の話
CSV(Comma Separated Values)ファイルは、カンマ(,)で区切られたプレーンテキストです。
つまり、中身は全部「文字列」として書かれてるだけです。これをExcelでダブルクリックすると、Excelは「文字列として読む」んじゃなくて、「表にしてあげるね〜」と勝手に解釈&型変換して表示します。
🤖 Excelの“親切な”自動変換の例
入力(CSV内) | Excelで開いたときの変換例 | 問題点 |
---|---|---|
001 | 1 | 先頭の0が消える |
1-2 | 1月2日や 1/2 に変換されることも | 意図しない日付変換 |
12E3 | 12000 | 数値(指数表記)に変換される |
型変換されると何が困るの?
実際に起きた今回の事例
①以下のレコードをcsvで書き出す
②csvをexcelで開く(型変換されてる…)→そのまま上書き保存する
③csvを読み込む
※受付番号とIDが意図しないデータになっている!!!
対処法は?おすすめの回避方法3選
方法①:Excelではなくテキストエディタで開く
方法②:Excelのインポート機能を使って手動で型指定する
方法③:Googleスプレッドシートで開いてからExcelへ変換
おすすめな方法は?
今回は、Excelシートを他のメンバーと共有して編集してもらう予定があったため、
手動で型指定ができる【方法②】の「Excelのインポート機能」を採用しました。
一方で、複数人でリアルタイムに作業したい/共有の手軽さを重視したいという場合には、
【方法③】の「Googleスプレッドシートを使って開く」方が便利かもしれません。
方法②の手順を紹介
2.プレビューが表示されるので「データ型検出」を「データ型を検出しない」にして「読み込み」をクリック
4.必要に応じて編集(編集後に変換されてしまう可能性があるので、「表示形式」を指定しておく)
5.変更したファイルをCSVで保存します。保存前に1行目の「見出し行」を削除。
「テーブルデザイン」の「見出し行」のチェックを外すと1行目が空白行になるので削除。
まとめ
CSVの型変換は、地味だけど見逃せない落とし穴です
特に、kintoneに再インポートしたときにエラーが出なかったとしても、「あれ?なんかデータおかしくない?」と後で気づく… なんてことは、なるべく避けたい
少し手間でも、正しい手順で取り込むことで、ミスやトラブルを防ぐことができます。
今回の件で、「ちゃんと確認しよう」と心に誓ったつつみんでした