- ベストアンサー
ExcelデータをWordへ差し込み印刷したときのデータ化け
WinXP、WordとExcelはともに2003です。 Excelでスポーツ記録のデータを作り、それをWordで差し込み印刷しようと思いました。 Excelのデータ項目は1行目に「氏名」「握力」・・「50m走」・・とし、データは2行目から入力しました。ところが、Wordに差し込むと、50m走のデータのうち、例えばエクセル側の「7.9」はWord側で「7.9000000000000004」に、「8.1」は「8.0999999999999996」になってしまいます。 不思議でしょうがありません・・。7.9も8.1も自分で打ったのに。 なぜか8.5はそのまま正しく表示されます。 いったい何が起こっているのでしょうか?解決方法はありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、こちらを参考にしてみては? http://office.microsoft.com/ja-jp/word/HA011164951041.aspx
その他の回答 (2)
- tokpy
- ベストアンサー率47% (1313/2783)
わたしたち人間の世界では10進数で計算しますが,コンピュータ内部では2進数で計算しています。2進数と10進数は相性が悪いのです。整数部分は問題なく変換できますが,小数部分は2進数に変換するとほとんどの場合循環小数(ずっと続く小数)になってしまいます。コンピュータでは有効桁の範囲内で数値を丸めないといけないので誤差が出ます。それで,入力したとおりの数値にならなかったのだと思われます。(10進数の0.5は,2進数で表すと0.1となり,循環小数にならないので,8.5は誤差が出なかったのでしょう。) 解決策としては#1さんのリンク先にあるとおりですが,DDEで差し込むのが手っ取り早いと思われます。
- koko88okok
- ベストアンサー率58% (3839/6543)
> エクセル側の「7.9」はWord側で「7.9000000000000004」に、「8.1」は「8.0999999999999996」になってしまいます。 パソコンは、2進法で計算し、10進法で表示していますので、そのような現象が起きることがあります。 ご希望のように表示させるには、フィールドコードを編集して、数式スイッチと表示形式を入力します。 「Alt」キーを押しながら「F9」キーを押しますと、フィールドが編集できるようになります。 { MERGEFIELD "定" }と表示されると思います。 この式に、半角で「\# "#.0"」を追加します。次のようになります。 { MERGEFIELD "定" \# "#.0" } 「Alt」キーを押しながら「F9」キーを押して、フィールドを閉じますと、 「7.9」「8.0」「8.1」のように表示されると思います。 「Alt」キーを押しながら「F9」キーを押す代わりに、「7.90000・・・」の部分を選択して、右クリックから「フィールドの表示/非表示」をクリックしても表示されます。 「Excel のデータを差し込みすると、日付、電話番号、および通貨が正しく表示されない場合の対処方法」 http://support.microsoft.com/kb/882154/ja
お礼
解決しました!ありがとうございます。 教えていただいたページにある、 「DDE では、共有メモリを使用してデータを交換します。他のデータ転送方式を使用すると、ワークシートのデータは、ワークシートのセルに適用した書式付きの形式ではなく、Excel のネイティブ形式で転送されるため、問題が発生します。」 の理屈が全然わからないのですが、とりあえず問題はきれいに解決できたので気持ちよく寝られそうです。 ありがとうございました。