- ベストアンサー
TXTフアィルをエクセルに取り込んだ時数字が化ける
社内システム(オラクル)でデ-タ-をエクスポ-ト(TSV)してからエクセルファイルに取り込みしたら数字が化けます 1234567890123456789012345 1.2345E+24 と表示される 1.ワ-ドパットでは正規に表示される 2.エクセルに取り込み 表示形式で変更では 1234500000000000000000000 と表示される 3.取り込む時に スペ-スによる変換で列幅変更を使えば当該数字は 正規にでますが デ-タ列が横に長いので 他のデ-タが使用出来ませ ん 以上宜しく ご指導ねがいます
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
1.文字を扱うソフトなので表示は変わりません。 2.エクセルの仕様で、12桁を超える値は指数表示になります。 3.文字列として取込めば表示は変わりません。 Excel:指数表示にされてしまった数値を一気に直す http://blogs.yahoo.co.jp/bardiel_of_may/26310406.html http://support.microsoft.com/kb/214233/ja
その他の回答 (3)
- nda23
- ベストアンサー率54% (777/1415)
少し趣旨が違いますが参考までに。 Excelでは実数には単精度、倍精度、十進、通貨の4通りの形式があります。 十進形式は96ビット整数で、小数点はこの中で任意の位置をとれます。 通貨形式は0.0001を単位とする64ビット固定小数点整数です。 単精度、倍精度は二進数浮動小数点で、各32、64ビットです。 十進、通貨は整数なので十進換算誤差は出ませんが、単精度、倍精度は 十進換算誤差があり、十進換算後に信頼できる桁数は各7、15桁です。 Oracleは十進演算が可能で、演算誤差はありませんが、Excelにエクスポートして 数値と認識されると倍精度実数として扱われます。このため、桁数が大きく、 数値として演算を行うと、誤差が発生します。この誤差が許されない場合は 上記項目は文字列として扱い、演算はOracle内で行わせ、結果をエクスポート した方がよいでしょう。 尚、セル内の実際の値と、表示形式は別物で、表示上は5桁でも、内部的には 先に述べたように15桁までは表現しています。
お礼
有難う御座いました
デ-タ-をエクスポ-トするときに 1234567890123456789012345→'1234567890123456789012345 としては如何でしょうか? エクセルでは文字列としてしか扱えませんが。
お礼
有難う御座いました
- nfushi
- ベストアンサー率31% (39/122)
文字化けるのではなく指数表示になる、が正解ですね。 hanaさんの通り文字列にすれば表示はできますが、数値として扱えなくなるので要注意です。 どちらにしても浮動少数の計算になるので丸めによる誤差は覚悟したほうがいいです。
お礼
有難う御座いました この方法でも又できる限りの方法 やって見たのですが 駄目でした 出来たのは txtアァイル時の 置き換へで文字数を減らして 置き換えました
補足
有難う御座います エクセルに取り込んだ後 文字列に変換したら 数字が左に移動した だけでした(それもやって見ました) テキストファイルの時に 置き換えを使用して変換できるのですが 面倒なので