プロが教える店舗&オフィスのセキュリティ対策術

あるセルに 7-2*3 の文字が入っているとします。
これを数式通りに答えを出したいのですが,関数だけでできるでしょうか。
教えていただけると助かります。よろしくお願いします。

質問者からの補足コメント

  • 小学生の子どもに算数プリントを作ろうと思っています。
    例に挙げた 7,-,2,*,3は乱数で作ります。
    できた問題の解答も載せてプリントを作りたかったので,
    答えを出すような関数があれば・・・と思っています。

    ※ 50代の方というのは,間違ってチェックを入れてしまったようです。

      補足日時:2021/05/30 19:32

A 回答 (4件)

ご質問者さんが望んでいるようなことを実現するためには、EVALUATE関数を使います。

EVALUATEは「計算式」を計算してくれる関数です。
添付画像をご覧ください。計算結果を表示するセルを選択して「=EVALUATE(計算対象セル)」という数式に名前を定義します。
この例では一つ左のセルの計算式を計算して結果を表示することになります。
添付画像では「calcu」という名前をつけています。
結果表示セルに「=IFERROR(calcu,"")」という数式を記述します。この例ではB1セルに記述して下方向にコピーしています。
こうすることで、A列に計算式を記述すると、B列にその結果が返ります。
なお、EVALUATEはマクロ関数なので、このブックを保存するときは「マクロ有効ブック (*.xlsm)」形式で保存してください。
「文字列の"7-2*3"などを計算させたい」の回答画像3
    • good
    • 1
この回答へのお礼

goomaniaさん,ありがとうございます。
こんな関数があるんですね。これが欲しかったのものです。
急いでいたので,これに近い関数をvbaで作りました。
私のは,一桁同士の計算だけなので,こちらの方がすごいです。
本当にありがとうございました。

お礼日時:2021/06/02 00:40

#3のgoomania さん、すごいですね。


EVALUATE関数って初めて知りました(浅学を思い知らされました。恥)。

ところで質問者さんの思いは、
>7,-,2,*,3は乱数で作ります
なので、「7,-,2,*,3」のそれぞれが別のセルに作られるということだと解釈しました。
例えば、a1に7,b1に-,c1に2,d1に*,e1に3 と入力されていて
「7-2*3」の結果を表示したい、のだと。
もしそうなら、f1に =a1&b1&c1&d1&e1
として、#3のgoomania さんの回答のEVALUATE関数を使えばできますね。
    • good
    • 0
この回答へのお礼

banzaiAさん,ありがとうございます。
その解釈の通りです。
これで,小学生用のプリントが作れそうです。

お礼日時:2021/06/02 00:41

前に「=」つける

    • good
    • 0
この回答へのお礼

早速ありがとうございます。
そうですよね。
質問が分かりにくくてすみません。補足をさせていただきました。

お礼日時:2021/05/30 19:40

目的は?


何で一セルだけの計算式なの
    • good
    • 0
この回答へのお礼

早速ありがとうございます。
補足をさせていただきました。
VBAなら作れそうだったのですが,関数はあまり得意ではなくて,質問をさせていただきました。
例えば,「文字列の中のー」をひき算と認識して計算してくれるような関数があるのかなと思った次第です。

お礼日時:2021/05/30 19:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!