[[20111214095210]] 『算式と回答を表示したい』(お茶漬け) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『算式と回答を表示したい』(お茶漬け)

 A1に5×3 B1にその結果の15 を表示したいんです。
(A1は=なしの数式のまま、B1は回答)

本当の式はもっと複雑です。
 
"*"でなければ掛け算が計算されないことも知っているのですが、
×で表示する必要があります。

聞く人がいなく、どうかご回答よろしくお願いいたします。


 A1に数式

 B1 =CHOOSE(SUM(COUNTIF(A1,"*"&{"+","-","×","÷"}&"*")*{1,2,3,4})+1,0,LEFT(A1,FIND("+",A1)-1)+MID(A1,FIND("+",A1)+1,20),LEFT(A1,FIND("-",A1)-1)-MID(A1,FIND("-",A1)+1,20),LEFT(A1,FIND("×",A1)-1)*MID(A1,FIND("×",A1)+1,20),LEFT(A1,FIND("÷",A1)-1)/MID(A1,FIND("÷",A1)+1,20))

 ※ +と-は半角

 (GobGob)

早々のご回答ありがとうございました!!

できました。

本当にありがとうございます。

(お茶漬け)


数式を本来のものに戻したら、#value!になってしまいました。

A1の数式が以下の場合です。

(2×0.019+0.380)×93.240

いろいろ複雑な計算式があります。

再度のご質問になってしまいお手数おかけいたします。
よろしくお願いいたします。


 A1に数式

 B1を選択

 「挿入」→「名前」→「定義」

 名前:keisan

 参照範囲:=EVALUATE(SUBSTITUTE(SUBSTITUTE(A1,"×","*"),"÷","/"))+NOW()*0

 「OK」

 B1に =keisan と入力

 ※11:24修正

 (GobGob)

 補足。

 Excel2007以降、4.0マクロ関数サポートしてるか?
 わしゃわかりません。

 (GobGob)

ご回答ありがとうございます。

上記の検索範囲をしていし、B1に=keisanを入れると、0になってしまいました。

最初にご回答いただいたchoose文は使用しないということになるのでしょうか?

再度の質問になってしまいお手数おかけいたします。

ご回答よろしくお願いいたします。

(お茶漬け)


 四則演算が1種類&1つだけ、がChoose関数案の条件だす。

 早い話が計算方法が固定されていないと数式では難しいよ。

 なんでEVALUATEで逃げましたw。

 ※メンテ等後々考えるとVBAの方がいいかもね。識者さん回答待ってみては?

 (GobGob)

 ちなみに。

 名前定義案はいろいろ修正してるんで、最初からもう一度やってみてちょ

 (GobGob)

そうなんですね。。。!

親切にありがとうございます。

識者さん回答待ちつつ、
上記を参考にいろいろ試していきます!

(お茶漬け)


 文字列で入力されている式の数値の部分が半角数字、括弧、+、-も半角という条件で
 考えて見ました。マクロ初心者で恥ずかしいのですが、たたき台として・・・
 小生自身の学習の機会として・・・

 Sub 文字列置換()
 '第1段階として×表示を*に置換
    文字列 = Range("A1").Value
    検索文字列 = "×"
    置換文字列 = "*"
    検索開始位置 = 1
    文字列 = Replace(文字列, 検索文字列, 置換文字列, 検索開始位置)
 '第2段階として÷表示を/に置換
    文字列2 = 文字列
    検索文字列2 = "÷"
    置換文字列2 = "/"
    検索開始位置 = 1
    文字列2 = Replace(文字列, 検索文字列2, 置換文字列2, 検索開始位置)
 '式とするために=を頭に付加し、B1セルに転記
    Range("B1").Value = "=" & 文字列2
 End Sub

 (あらくま)

弥太郎さんの txtcalc関数は?

http://www.excel.studio-kazu.jp/kw/20081012185737.html


 ユーザー定義関数。(加減乗除限定)
 
 Function keisan(r As Range)
  Dim str As String
  str = Replace(Replace(r.Value, "×", "*"), "÷", "/")
  keisan = Evaluate(str)
 End Function

 B1セルに、=keisan(A1) と入力。
 
(純丸)(o^-')b


ありがとうございます!!

純丸さまの方法で解決できました。

また躓いたら、皆様に聞くことがあるかもしれませんが、
よろしくお願いします。

(お茶漬け)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.