Excel、csvファイルの変換でトラブル?

このQ&Aのポイント
  • Excelで作成した13桁の数字データをcsv形式に変換する際に、表示形式が変わるトラブルが発生しました。
  • csvファイルで保存された13桁の数字データが、後ろ9桁が0000000000になる問題が発生しました。
  • データの訂正は終了しましたが、数千件のデータがこのようになってしまい、困っています。
回答を見る
  • ベストアンサー

Excel、csvファイルの変換でトラブル?

操作方法の間違いもあったかもしれませんが。 Excel、*****.xls で作成した数字データ、 具体的には、9991234567890 という、13桁の数字なのですが、 これをcsv形式のブックに数値のみコピー&ペーストをしました。 その後、csv側で、そのセルに対して、セルの書式設定→表示形式→分類を[数値]にして保存しました。 ところが、しばらくしてからそのcsvを開くと、9990000000000 というデータに変わっていました。 13桁の数字はほかにも頭3桁がさまざまな値のものがあり、すべて後ろ9桁が0000000000になっていました。 csvでデータ化したのが今回が初めてでしたので、何か操作ミスも考えられるのですが、なぜこのようになったのか教えてください。 データの訂正はとりあえず終了したのですが、数千件のデータがこのようになってしまい、本当に困ってしまいました。

質問者が選んだベストアンサー

  • ベストアンサー
  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.1

ポイントはcsvには書式が保存されないというところですね。 13桁の数値を入力し、書式を「数値」とした時点では正常に表示されており、 そのままcsvに保存しても正常に保存されていると思います。 ところが、そのcsvを再度EXCELで読み込んだときには、前に設定した書式は既に無く、 値は浮動小数点形式に変換されてしまいます。 再度、書式を「数値」に設定すれば良いですが、設定せずにそのまま保存してしまうと 値は、「9.99E+12」というように浮動小数点形式で保存されてしまいます。 この時点で、入力した下9桁は飛んでしまいました。 csvで読み書きする場合、このように予期せぬ変換が行われてしまう場合が多いです。 再度、EXCELで開く場合はxlsで保存しておく方が良いと思います。 必要がある都度、csvで保存するような運用はできないのでしょうか?

JM2inTokyo
質問者

お礼

ご回答いただきありがとうございます。 csv形式は書式が保存されないというのは理解していたのですが、 >再度、書式を「数値」に設定すれば良いですが、設定せずにそのまま保存してしまうと >値は、「9.99E+12」というように浮動小数点形式で保存されてしまいます。 ということ、納得しました。 確かに、csvのデータチェックの際、言われるようなプロセスを踏んだ気がします。 言われた手順を行ったところ、確かに同じ症状となりました。 おっしゃる運用方法は可能ですので、最終保存時、および処理時のみcsvデータ化することに手順を改善します。 良い経験となりました。 誠にありがとうございました。

関連するQ&A

  • ExcelファイルをCSVに変換した場合

    たとえばセルの書式設定でA列の数値「100」を「0100」と4桁で表示させExcelファイルをCSVに変換した場合、書式設定が反映できない為 「100」に戻ってしまうのですが、4桁を保持したい場合どうすればよいでしょうか?書式設定ではなく関数が分かれば書式を文字列に変換してからCSV形式に変換できるのですが...

  • エクセル→CSVについて

    エクセルで編集してCSV形式で保存する場合、あるセルに8ケタの数字を入れたくて、[書式設定]-[ユーザー設定]で0を8個いれたのですが、CSV形式で保存すると8ケタになりません。 同様に「'00000001」の形で入力してみてもだめでした。 何かいい方法はありますでしょうか?

  • エクセルのCSVファイルについて。

    こんにちは。 エクセルのCSVファイルの扱いで質問です。 数値を入力した際、 通常の.xlsファイルだと、セルから大きくはみ出した数字は、セルの幅を調節すれば、入力した通りに出力されますよね? 現在、CSVファイルを扱っているのですが、 入力値が「44444444444444400000」のように大きくはみ出した場合、 セルの中には「4.44444E+19」と出力されてしまいます。 あらかじめセルの幅を広くしても、結局、桁の多い数値を入力すると同じような結果になります。 どうすれば、入力した通りの数値を出力させることができるのでしょうか? よろしくお願い致します。

  • csvをエクセルに取り組みたい。初心者

    csvをエクセルに自動マクロ機能で取り込むように設定しました。 12ケタの数字を取り込みたいが9.73E+11となってしまいます。 aのフォルダにa.csv と b.xlsxがあります。 a.csvにダウンロードしたものをb.xlsxに読み込みたいです。 12行のデーターの中から2個のデーターだけを読み込みたいのですが 12ケタの数字もそのままの数字で読み込むことは不可能なのでしょうか? 今まではcsvの表示形式を数字に変換してからブック形式に保存。 そして、テキストにデーターを張り付けてデーターを使用していました。 ブックからデーターをコピーして貼り付けると数字が半角になっていないためできませんでした。 この一連の作業を自動でできたらうれしいかなと思いましたが無理でしょうか? もし、わかる方がおられましたら教えてください。 よろしくお願いします。

  • CSVデータの数値の表示

    教えて下さい。 他プログラムからCSVデータ出力したデータを エクセルで表示すると、13桁の数字が9E+12と表示されて しまいます。 セルの書式設定を「数値」に変更すると一時的に数字が表示されるのですが、一度保存して、再度ファイルを開くと戻ってしまいます。 エクセル形式で保存すれば大丈夫なのですが、どうしてもCSVファイルのままで保存したいのです。 CSVデータで13桁の数字を常に表示する方法を教えて下さい。 よろしくお願いします。

  • ExcelからCSV出力して読込むと削除変換される

      Excelのブック1のシートに入力されたデータを 一度、CSVファイルに出力して このCSVファイルを別のツール(perlなど)で変換して この変換されたCSVファイルを再び 別のExcelのブック2のシートに読み込ませたいのですが Excelのブック1から出力したCSVファイルを 別のツールで変換しなくてもそのまま Excelのブック2のシートに読み込ませた時点で 文字の一部が消えたり数式が値になったりしてしまっています。 具体的には、 セルの先頭の ' (シングルクォーテーション) が消えてしまったり、 1つ足りなくなったりしています。また、 先頭の =1+1 などは、(表示上) 2になったりしてしまっています。 なお、セルの書式設定が標準だと、先頭の @ の後に続けて入力すると 正しく入力できませんが、セルの書式設定を文字列にすると、 この @ の問題は起きなくなりました。でも、セルの書式設定を文字列にしても ' (シングルクォーテーション) や数式が計算結果になる問題は 解決していません。 (問1) 削除されたり変換されてしまうのは     ・先頭の ' (シングルクォーテーション)     ・先頭の =     ・先頭の @    の3つのケースだけでしょうか。    このほかにもありましたら教えてください。 (問2) 先頭の =1+1 の場合ですが    セルの書式設定が標準の状態で =1+1 と入力すると    数式バーには =1+1 と表示されていて    セルの書式設定が標準だと2と表示されていてその後    セルの書式設定を文字列にしても2と表示されています。    逆に、    セルの書式設定が文字列の状態で =1+1 と入力すると    数式バーには =1+1 と表示されていて    セルの書式設定が文字列だと =1+1 と表示されていてその後    セルの書式設定を標準にしても =1+1 と表示されています。    いずれも入力したデータは同じなのに    入力時点での表示形式で表示内容が固定されてしまっていて    その後、表示形式を変更しても表示内容が反映されていない    ように感じるのですが何が起きているのでしょうか。 (問3) 前述の理由により、CSVファイルをセルの書式設定が文字列    の状態で読み込ませることはできるのでしょうか。    (後でセルの書式設定を文字列に変更しても =1+1 と表示されないので) (問4) Excelのブック1のシートのセルには     ユーザーが好き勝手な文字や数値や記号を入力します。     何を入力されても変化してしまわないようにすることはできるでしょうか。      ( 頭に ' を付けることをユーザーに強要するとか、       事前にセルの頭に ' を入力しておくなどはなしです) (問5) もし、できない場合、Excelのブック1のシートの各セルの先頭に     ' (シングルクォーテーション) や = から始まる数式を    入力することができないように制限をかけることはできるのでしょうか。 よろしくお願いします。(Windows7,Excel2010)

  • CSVファイルをExcelで開くとき

    CSVファイルをExcelで開くと、 12桁以上の数字が値として入っていた場合、 自動で対数表示されてしまいます。 現在、16桁の数字を扱っているのですが、 16桁を対数表示してしまうと、 1の位の数字が必ず0になってしまい、 元データの値を失ってしまいます。 CSVを開くときに、全セル文字列で開くことは出来ませんか?

  • CSVファイルに書式ってあるんですか?

    CSVファイルに関して質問があります。 ある数値のデータがあるEXCELファイル((1)とします)をCSV形式で保存します。 そのCSVファイルのアイコンをクリックすると、当然EXCELで開くことができます((2)とします)が、その時に、EXCEL(1)で設定した書式によって、EXCEL(2)で表示されるものが変わるという現象が起きてます。 具体的に言うと、EXCEL(1)で桁区切りをつけた書式を設定すると、EXCEL(2)でも桁区切りが表示され、EXCEL(1)で桁区切りをつけないとEXCEL(2)でも表示されないという状態です。 質問は以下の2つです。 1.「CSVファイルは書式を持たない」というような認識を持っていたのですが、それは違うのでしょうか? 2.EXCEL(1)の書式は違っても、EXCEL(2)で表示されるものを同じものにするにはどうすればよいのでしょうか? 詳しい方どなたか教えてください。

  • Excelでのトラブル

    Excelのセルに数値を入力したいのですが、数値を入力してEnterを押すと セルの書式設定→表示形式→分類 が自動的にユーザー定義となり日付形式となってしまいます。外部から送られてきた書式のためどのような設定がなされているかわからないのですが、どなたか回復策を知っているかたがいらしたら教えてください。よろしくおねがいします。

  • Excelのcsv保存について

    別ブックのデータを参照して、csvで保存するためのブックを作ったのですが、参照のための関数が入力されているセルもcsvにnullで出力されてしまいます。 参照元.xls  A B C D E 1 あ い う え お 2 か き く け こ 3 さ し す せ そ 4 5 csv出力用.xls A1~E5には作業の都合上、 =IF([参照元.xls]Sheet1!A1="","",[参照元.xls]Sheet1!A1) のような関数を入れて参照しています。  A B C D E 1 あ い う え お 2 か き く け こ 3 さ し す せ そ 4 5 これをcsvで保存すると、 あ,い,う,え,お か,き,く,け,こ さ,し,す,せ,そ ,,,, ,,,, と、データは未入力だけど関数が入っている部分まで保存されてしまいます。 これを、 あ,い,う,え,お か,き,く,け,こ さ,し,す,せ,そ ここまでで保存できるような方法、 もしくは関数などはありませんでしょうか。 csv出力用のブックでは一括半角置換や全角置換、 誤入力されたハイフンやスペースの削除などをおこなっているので、 できればこの参照形式は崩したくありません。 わかるかたいらっしゃいましたらアドバイスをお願いします。

専門家に質問してみよう