• ベストアンサー

Excelで3E8を3.00E+8にしない方法を教えてください。

Excel2000および2003で数値の「1000」をDEC2HEX関数を使用して16進の「03E8」に変換し、これをカンマ区切りのcsvファイルで保存したいのですが「CSVと互換性のない機能が含まれている可能性があります。」と表示され、そのまま保存すると、セルの内容が「3.00E+8」の指数形式に変わってしまいます。 指数形式ではなく、文字列で03E8と保存する方法はないのでしょうか? ご存知の方よろしくお願いいたします。

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

  • ベストアンサー
回答No.2

CSVに書き出した場合、文字列3E8はそのまま文字列3E8として保存さ れています。しかしそれをExcelで開くと、文字列3E8を勝手に数値 3.00E+08と解釈して、変換されてしまいます。これはExcelのいつも の「でっかいお世話」機能ですので、回避するには当該ファイルが CSVじゃなくてテキストファイルだよと見せかけて、ウィザードを経 由して読み込むしかありません。 Microsoft製ではないあらゆるソフトでは正しく3E8という文字列と して扱ってくれますので、CSVに書き出す目的が他のソフトへのデー タの移動でしたら、CSVをExcelで開くのは危険とだけ憶えて、ほっ といていいです。 どうしてもExcelに戻す必要がある場合、私なら16進表記の数値であ ることを示す意味でも「0x03E8」と書きますね。これならExcelには 何のことだか判らないので、勝手なことをされません。 =REPLACE("0x0000",7-LEN(DEC2HEX(A2)),LEN(DEC2HEX(A2)),DEC2HEX(A2))

kalpa
質問者

お礼

grumpy_the_dwarfさん 回答ありがとうございます。 Excel以外で再検討してみます。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> セルの内容が「3.00E+8」の指数形式に変わってしまいます。 どのような方法で確認されましたか? CSVをEXCELで開いておられるとか? メモ帳などテキストエディタで開くと、どのように保存されていますか? 小生がEXCEL2000にて試験したところ、うまく行くようです。 (テキストエディタで開いても、CSVをEXCELで開いても) ただ、[03E8]ではなく、[3E8]になりますので、何かさらなる編集をなさってますか?([]は説明上付加したもの) 強制的に「文字列」とさせるなら、 DEC2HEX関数を設定するセルで、先頭に'(シングルクォート)を連結しておくとか。(’が表示されて邪魔かも?) ="'"&RIGHT("0000"&DEC2HEX(1000),4)

kalpa
質問者

お礼

bin-chanさん。 回答ありがとうございます。 テキストエディタでファイルをひらいたら[03E8}で保存されていました。

関連するQ&A