エクセルで質問です。エクセルのバージョンは2007です。

数式バーに数式を,例えば「=1.50e-3*(B3+2.5e4)」のように,定数を指数の形で表記して入力します。数式を確定したあともう一度数式バーを見ると,指数が自動的に開かれて「=0.0015*(B3+25000)」になっています。
ちょっと桁数が増えると後で見るとき大変不便ですし,有効数字など意図的に書きたい桁数の情報も落ちてしまいます。数式中の指数を勝手に開いてしまわないように設定したいのですが,設定方法を教えてください。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2008/11/14 23:05:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:language_and_engineering No.1

回答回数170ベストアンサー獲得回数63

ポイント35pt

設定による方法ではないのですが…

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)")

と入力します。

この場合,セル内の表記は保たれます。

id:zyugem

回答ありがとうございました。教えていただいた方法を試してみました。

この方法ですと,そのままでは数式中に相対参照がある状態でセルのコピーや移動をしたときに,適正にリンクが追従しないようです。つまりB3などのセルが自動的に修正されず絶対参照のようになってしまいました。

そこで使い方を工夫して,文字列として""でくくる部分を「指数で書かれた定数」部分だけにしてやってみるとうまくいきました。つまり

=Eval("1.50e-3"*(B3+"2.5e4"))

と書くとリンクの問題を回避できるようです。

Eval関数が常にこの書き方で正しく解釈してくれるか,未知の部分はありますが,この方法で当面は大丈夫そうです。

質問はもうしばらく開いておきますので,このほかの方法がありましたらぜひ教えてください。特に諸悪の根源「指数が自動的に開かれてしまう」という仕様?の変更方法を知りたいと思います。

2008/11/10 19:38:32
id:language_and_engineering No.2

回答回数170ベストアンサー獲得回数63

ポイント35pt

この指数の仕様はもどかしいですね。


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))

のように書くのならば,入力内容は保存され,また相対参照のフィルもできます。

桁の精度は ホーム>数値>表示桁数を増やす で変えられますね。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません