• 締切済み

Excel を使用し 算式として

Excel を使用し 算式として (0.350×0.550-1/2×0.250×0.450)×27.95 のように、第3者がにても分かりやすいように *を×と表示し、コピーして関数(ROUND)等に貼り付けると、 エラーが出ます。×=*と変換するにはどうしたらよいのでしょうか。 また、第3者にできあがったブックを渡しても文字化けしないほうほうは・・・? 誰か教えて下さい。

みんなの回答

  • rolly-ys
  • ベストアンサー率43% (25/57)
回答No.3

>やはりマクロを使わなければいけないみたいですね・・・・・。 マクロと言っても出来あいの関数を使うので問題はないと思いますが・・・・ これがだめなら、FIND関数とMID関数を使い数字部分を取り出してその文字列に「1」を乗じます。 (0.350×0.550-1/2×0.250×0.450)×27.95 において 0.350の部分は、=MID(A1,2,FIND("×",A1,1)-2)*1 0.550の部分は、=MID(A1,FIND("×",A1,1)+1,FIND("-",A1,1)-1-FIND("×",A1,1))*1 -1/2の部分は、=("0 "&MID(A1,FIND("-",A1)+1,FIND("×",A1,8)-FIND("-",A1)-1))*-1 の様に数値化して計算します。

  • rolly-ys
  • ベストアンサー率43% (25/57)
回答No.2

(0.350×0.550-1/2×0.250×0.450)×27.95 が、A1に入力されているとして A2に、=SUBSTITUTE(A1,"×","*") を入力します。 戻り値は、(0.350*0.550-1/2*0.250*0.450)*27.95 になりますが、これも文字列ですからこのままでは計算できません。これを計算させるには、EVALUATE というExcel4.0マクロ関数を使います。 B1に答えを出すとして 1.B1を選択 2.挿入→名前→定義→名前欄に任意の名前(例、計算)を入力する。 3.参照範囲欄に、=EVALUATE(A2) を入力する。→OK 4.B1に、=計算 を入力する。→戻り値は 3.808188 更に、B1の式を次のように書きかえれば、 ="="&ROUND(計算,2)→戻り値は =3.81 となり、A1の算式に続いているように見えます。 これはあくまでもマクロなので、ファイルを受け取った人がセキュリティを「高」にしていると使えません。 A2の戻り値と式を見せたくなければ、文字の色を白→書式→セル→プロパティ→表示しないにチェック→OK→ツール→保護→シートの保護→必要に応じパスワード設定

ACKCH
質問者

お礼

ありがとうございます。 やはりマクロを使わなければいけないみたいですね・・・・・。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

2バイト文字の「×」は演算子として認識されません。 これはあくまでも文字列として扱われます。 ですから、計算を行う関数に渡してもエラーになるだけですよ。 計算を実際に行うセルにコピーして初めエラーになっても、あとから「置換」で「×」を「*」に置き換える事でエラーをなくす事ができます。 置換するセルを指定して置き換えましょう。 質問を見る限り、これで十分な気がします。 多少、対象のセルの数が多いと面倒ですが、対象のセルだけを選んで「置換」すると楽ができます。 頑張ってください。 「置換」の場所や使い方が分からない時は Excel のヘルプを見てください。

ACKCH
質問者

お礼

ありがとうございます。 質問の仕方が悪かったみたいですね。 ほしい回答とはちょっと違っていました。

関連するQ&A