• 締切済み

Excelで文字列を数式として認識させる関数

A列に入力された文字列(例:"1+1")を、B列でA列の文字列(数式)の計算結果を算出させたいのですが、そのような関数ありますか? できれば、VBAではなくExcelでやりたいです。 OSはXP、Excel2003です。 よろしくお願いします。

みんなの回答

  • Miusuke
  • ベストアンサー率20% (5/25)
回答No.2

もし、全て足し算。全て引き算などであれば 区切り位置で分割して別のセルに結果表示させる関数を入力してはどうですか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

標準でそういう関数はないです。 拡張していいなら、VBAのEVALUATEを流用して 標準モジュールに Function Eval(str As String) As Single Eval = Evaluate(str) End Function などの関数を定義すればよいでしょう

asami97
質問者

お礼

教えて頂いた関数でやることにしました。 ありがとうございましたm__m

関連するQ&A

  • 文字列を用いてExcel関数を呼び出したい

    C#にてExcel用のアドインを作成しています。 そのアドインは、独自の関数の挿入画面を表示し、こちらが用意したVBAの関数を呼び出してデータベースにアクセスする動きです。 この独自の関数の挿入画面上で引数にSUM()などのExcel関数を入力された場合、Excel標準の関数の挿入画面と同じように、 入力された関数の計算結果を右側に表示するような作りにしたいのです。 当初は独自の関数の挿入画面で引数に「SUM(B1:B10)+AVERAGE(C1:C5)」と入力されれば、その文字列を解析してどの関数が呼ばれているか抽出し、 Application.WorksheetFunction内のメソッドを呼び出そうかと考えたのですが、 作業量が多い上に自分の技術力が無いのでバグが発生する可能性が高く信頼に値しないということで、断念しました。 受け取った文字列をそのまま用いてWorksheetFunctionのメソッドを呼び出し、結果を受け取るということは可能でしょうか?

  • エクセルの関数の数式がわかりません。

    A列 B列 1 10 2 20 3 30 a 4 40 エクセルの関数の数式がわかりません。 B1~B4のどこかにaの入力があった場合、aの入力がある行と同じ行のA列に入力されている数字を別のセルに表示させたいです。 例えば、上記のようにB3にaがあるので、A3の30を、別のセルに自動で30と出るようにしたいです。 B列には、ランダムにaを入力しますので、aが別の行にある場合もあります。 この場合の数式を教えてください。 よろしくお願い致します。

  • EXCELの関数について

    いつも大変お世話になっております。 今回はEXCELの関数についてご存知の方いらっしゃいましたら、ご教授頂けたらと思います。 添付の画像を見て頂けたらと思いますが、 A列に計算の元となる数字を入力し、 2行目に計算したい計算式を入れると、 その結果を自動的に算出するようにしたいのですが、 緑色のセル(B3~D5)を再現してくれる関数はあるでしょうか? 仕様:Excel2013 どうぞよろしくお願い致します。

  • エクセルリンク元文字列

    エクセルのA列にURLリンクが貼られている文字列が3000行ほどあります。そのURL(例:http://www.***.**.cc/など)の文字列をB列に入力したいのですが、リンクゲット関数か何かあるのでしょうか?またはマクロ(VBA?)とかで処理する方法はあるのでしょうか。 よろしくお願いします。

  • エクセルのVLOOKUP関数の検索値が数式の場合について

    エクセルのVLOOKUP関数に悩んでいます。 どなたかご指導お願いいたします。 *--------------------------* A~F列 すべて書式が時刻です。 A、B列には数式で計算された時刻が入力されており、 C列はA列+B列という計算式がはいっています。 F列に=VLOOKUP(C列、D:E列、2、FALSE)というように C列を検索値とし、D列を参照し、E列にある時刻をF列に 設定したいのですが、結果が#N/Aになります。 例えばA,B列が数式ではなく入力した値であれば 検索値であるC列がA列+B列 でも結果はOKでした。 検索値は数式セル同士を足し算した数式は設定不可能なのでしょうか?

  • Excel 関数 計算式について

    Excel関数について教えて下さい。 下記のようにExcelの縦列で、A列とB列があるとします。 まず、B列の数値が「2.5」以下になる際の”A列のセル数”を算出するには、どのような関数(計算式)を使えば宜しいでしょうか? また、B列の数値が「2.5」のみの”A列のセル数”を算出するには、どのような関数(計算式)を使えば宜しいでしょうか? 但し、実際に計算式を記入するセルはA列でもB列ではなく、X列となります。 A列   B列 1     2.4 3     3.5 5     3.6 2     2.7 1     2.1 1     3.0 4     2.2 1     2.5 2     1.6 1     1.9 1     3.4 3     1.7 1     1.4 6     2.5 1     3.6 5     2.5 宜しくお願い致します。

  • Excel(2002) 関数 数式そのものを文字列として取得

    Excel入門用の教材を作っています。 うまくできたら「OK」を表示するように、たとえば次のようなチェック用の式を使っています。  =IF(A1="あいうえお","OK","") ところで、関数など数式を入力させる練習問題の場合、入力した数式そのものが正しいかチェックする方法が思い当たりません。 セルに入力した式そのものを文字列として取得できる関数(の組み合わせ)があればよいのですが、可能でしょうか? 次の xxx のようなものです。  ? =if(xxx(A11)="=sum(A1:A10)","OK","") もし無理であれば、セルに入力されているのが、単なる数値ではなく式であることを検査する方法でもかまいません。 どうかご教示ください。よろしくお願いします。

  • EXCELの数式結果で困っています(TEXT関数について)

    A列に1から5までの数字どれかひとつを入力するとB列へ自動的に指定した文字を返す作業を試みています。 B1に下記の関数を入れましたが、数式の結果がおかしくなってしまい困っています。 A1に入力した『1』をB1には『10本』と反映したいので =TEXT(A1,("[=1]10台;[=2]20台;[=3]30台;[=4]40台;[=5]50台;;")) と入れましたが、数式結果が11台となってしまいます。 『10台』を数字とみなしてしまっているためなのか…と思い、いろいろ と修正を試みましたが、原因がわかりませんでした。 また、TEXT関数の他に何か良い方法がありましたら、ご伝授ください。 どうぞ、よろしくお願いいたします。

  • エクセルで文字列を数式に取り込む関数

    セルB列に文字列で仮に 0.85*0.9 のような文字列の入力があったとします。 これをC列のセルに =ROUND(0.85*0.9.2)の計算を行った結果の答えである 0.77 が表示されるようにしたいのです。 =ROUND("="&ASC(B2),2)とやるとエラーになってしまいます。(ASCを使ったのは全角で入力があった場合を想定しました。) いい方法はないでしょうか?

  • Excelで数式の前に=をつけるには

    こんにちわ Excelのセルに数式が文字列で入力されています。 すべての先頭に=をつけてちゃんと計算できるようにしたいのですが、 かなりの列数があるので手入力は面倒です。 一括に処理したいのですが =を&で結合させてもうまく行きません。 どうしたらよいか教えていただけますでしょうか? 例) A1+B1と入力されているものに=をつけて ちゃんと計算されるようにしたい。 質問の仕方がわかりにくくてすみません。