数式バーに数式を,例えば「=1.50e-3*(B3+2.5e4)」のように,定数を指数の形で表記して入力します。数式を確定したあともう一度数式バーを見ると,指数が自動的に開かれて「=0.0015*(B3+25000)」になっています。
ちょっと桁数が増えると後で見るとき大変不便ですし,有効数字など意図的に書きたい桁数の情報も落ちてしまいます。数式中の指数を勝手に開いてしまわないように設定したいのですが,設定方法を教えてください。
設定による方法ではないのですが…
ttp://shoji.blog1.fc2.com/blog-entry-60.html
を参考にさせて頂き,開発タブからマクロで
Function Eval(ByVal expr As String) Eval = Evaluate(expr) End Function
という関数を作ります。
セルには,
=1.50e-3*(B3+2.5e4)
のかわりに,
=Eval("1.50e-3*(B3+2.5e4)")
と入力します。
この場合,セル内の表記は保たれます。
この指数の仕様はもどかしいですね。
Excel 打った文字と違う数字が表示される
http://qa.asahi.com/qa3358590.html?ans_count_asc=1
…Eを使った指数形式で入力すると,
・表示上は,Eの前が10以下に正規化される
・式内容は,10進数で開かれてしまう
Excel で文字列または数値が意図しない表示形式に変換される
http://support.microsoft.com/kb/214233/ja
…文字列として入力すれば入力内容は変わらない(しかし計算もされない)
Excelの指数表示
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1110482...
…指数だけ解除はできない
↑Eの対処方法はないようです。
なお,もしも指数の入力をEを使わずに
=1.5*10^(-3)*(B3+2.5*10^(4))
のように書くのならば,入力内容は保存され,また相対参照のフィルもできます。
桁の精度は ホーム>数値>表示桁数を増やす で変えられますね。
回答ありがとうございました。教えていただいた方法を試してみました。
この方法ですと,そのままでは数式中に相対参照がある状態でセルのコピーや移動をしたときに,適正にリンクが追従しないようです。つまりB3などのセルが自動的に修正されず絶対参照のようになってしまいました。
そこで使い方を工夫して,文字列として""でくくる部分を「指数で書かれた定数」部分だけにしてやってみるとうまくいきました。つまり
=Eval("1.50e-3"*(B3+"2.5e4"))
と書くとリンクの問題を回避できるようです。
Eval関数が常にこの書き方で正しく解釈してくれるか,未知の部分はありますが,この方法で当面は大丈夫そうです。
質問はもうしばらく開いておきますので,このほかの方法がありましたらぜひ教えてください。特に諸悪の根源「指数が自動的に開かれてしまう」という仕様?の変更方法を知りたいと思います。