アプリ版:「スタンプのみでお礼する」機能のリリースについて

いくつか過去の質問を読んだのですが、要領を得ないので力を貸してください。
エクセルのA列に「3*5+2」などの数式を文字列として入力し、B列に「17」という答えを出るようにしたいです。
何か簡単にできる方法はありますでしょうか?

A 回答 (3件)

えーと、あなたの言っていることが簡単な事でしたら、A列に普通に計算式を入れて、B列にイコール(=)の後に計算式3*5+2を入れたらB列には答えのみが出ます。

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

なるほどー。このやり方には気づきませんでした。
すぐに答えがB列に出てくるわけじゃないのが、ちょっと面倒にも感じますが、検討してみます。
ありがとうございました。

お礼日時:2006/05/15 11:08

ユーザ定義関数として標準モジュールに


Public Function eval(exp)
eval = Application.Evaluate(StrConv(exp, vbNarrow))
End Function
のような関数を作れば
A1
3*5+2
の時
B1
=eval(A1)
で17という答えがでます
見当違いならごめんなさい
    • good
    • 0
この回答へのお礼

ありがとうございます。
チャレンジしてみます!

お礼日時:2006/05/15 11:06

エクセルの計算に


(1)=3*5+2のように直接入力する方式
(2)セル参照を使う
   例えばA1に5を入れておき、==3*A1+2とA1にセルとは別のセルに式を入れる方式
があります。ご存知だと思います。
(1)と似ているのですが、この質問の意図は違うと思います。
(3)セルの内容(算術式が多いと思うが)を、数式とみなして計算するのは、普通の人には至難のわざと思います。
(4)(3)を一般化して=5y+1のようなことも考えることもありえます
http://www2.moug.net/bbs/exvba/20060503000001.htm
で大議論してる例がありました。
(5)定数だけを引数にして、ユーザー関数を作る方法もあります
=関数式を=enzan1(5)と表現して
=3*a+2を計算して返すような例です。
(6)セルの数式(定数と演算子だけ、かつ四則演算とカッコだけ許すに限っても)数式の約束どおりの計算を行うのは、自作せねばならず、相当至難の業です。逆ポーランド記法に直し処理する必要もあると思うので、それらのアルゴリズムの使用経験やテストも要ります。
エクセル関数にはそれらしきものはないと思います。
エクセルの実務向けの発想と違うのだと思います。
質問者は、一般化が好きな、理科数学には適した性向の方とは思いますが。
ーー
質問者のレベルと上記の私の記述のどの辺の話題に、質問者の質問の意図がカスっているか、良ければ書いて見てください。
別のアプローチの解法がどなたかから、載るかもしれません。

この回答への補足

詳しくありがとうございます。
えーっと・・・私はごく普通に?PCを使っている程度で、決してレベルは高くありません。マクロも関数も使ってはいますが、詳しくありません。ですから私が質問していることが無謀かどうかもわからないレベルです(汗)過去の質問を読んだ限り、ちょっとめんどうなのかなーとは思っているのですが・・・
仕事で、質問のようなことができないかと聞かれ、何かいい方法はないかなーと思ったのです。
ですから一般人には至難のわざと言われると、きっと私には無理ですね。
何かいい方法が出るかもう少し待ってみますが、出なければあきらめます。
ありがとうございました。

補足日時:2006/05/13 15:39
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています