• ベストアンサー

セル内に文字として式を入れて答えを別のセルに...

お世話になります。 例えば下記の表現のままひとつのセルに文字として式を書き、別のセルに答えを出す方法はございませんでしょうか? 10+20+30-40×10÷2 とひとつのセルに入力、 別のセルに100と答えが出ないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • zuntac
  • ベストアンサー率36% (45/124)
回答No.8

1. 「ツール」→「マクロ」→「Visual Basic Editor」でマクロのエディタを開く。 2. Sheet1を開いて、以下のマクロを書き込む。 3. Sheet1のセル A1 に   10+20+30-40×10÷2   を書き込む。 4. Sheet1のセル B1 に答えである -40 が表示される。 Private Sub Worksheet_Change(ByVal Target As Range) Dim str As String If Target = Range("A1") Then str = "=" & Range("A1") str = Replace(str, "×", "*") str = Replace(str, "÷", "/") Range("B1").Value = Evaluate(str) End If End Sub

sonans
質問者

お礼

すごいです!希望通りです。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (9)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.10

'頭から順番に計算していきたい場合 '=calc("10+20+30-40*10/2") '100 Public Function calc(exp As String) Dim a, i exp = "+" & exp a = 0 Do While Len(exp) <> 0 For i = 2 To Len(exp) If InStr("+-*/", Mid(exp, i, 1)) <> 0 Then Exit For End If Next a = Evaluate(a & Left(exp, i - 1)) exp = Mid(exp, i) Loop calc = a End Function

sonans
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.9

>10+20+30-40×10÷2 これはー140ではないの。 >頭からでも通常の数学的の場合も条件を指定できればありがたいです。 これはどんな意味。条件とは。 これは「コンパイラのつくり方」の本でも勉強すべきでしょう。逆ポーランド記法などという語句を知ってますか。技巧が要ります。こういうのが簡単に数行のプログラムで、できればよいなというのが、プログラマの夢ですが、一般には簡単にはできないでしょう。ましてエクセルでは。特にエクセルの関数式では。 エクセルは半角でセルに=の後に10+20+30-40*10/2といれは、答えのー140を出す機能はあります。 電卓の操作の数値と四則演算キーのキーインのペアを記述したものとして計算して答えを出すほうがVBAプログラムでやるにしても易しそう。

sonans
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.7

こんばんは。 Ver4.マクロ関数の回答が出ているので、VBAで作ってみました。 '標準モジュール Function FEVALUATE(arg As Variant) As Variant Dim buf As String If VarType(arg) = vbString Then  buf = StrConv(arg, vbNarrow)  buf = Replace$(buf, "×", "*")  buf = Replace$(buf, "÷", "/")  On Error Resume Next  buf = Evaluate(buf)  If Err() = 0 Then   FEVALUATE = CDbl(buf)  Else   FEVALUATE = arg  End If  On Error GoTo 0 End If End Function それから、 >別のセルに100と答えが出ないでしょうか? 数式が違うのに、別の答えを出せっていうのは、それは、私は分らないですね。

sonans
質問者

お礼

ご回答ありがとうございます。やってみます。

全文を見る
すると、全ての回答が全文表示されます。
  • EL-SUR
  • ベストアンサー率76% (83/108)
回答No.6

#5の merlionXXさんと同じ方法ですが、 次のようにすれば×や÷を使っていても計算可能です。 もちろん * や / でもOK。 >10+20+30-40×10÷2 A1セルに↑のように入っていて、計算結果をB1セルとします。 B1セルを選択して(←←コレがポイント) メニューの「挿入」-「名前」-「定義」 ■ 上の「名前」に、keisan と入れます。(←←任意です。他の名前でもOK ) ■ 下の「参照範囲」に =EVALUATE(SUBSTITUTE(SUBSTITUTE(A1,"×","*"),"÷","/")) と入れて 「OK」。↑をコピーして Ctrl+Vキーで貼り付けできます。 式を修正するときは F2キーを押してからにしてください。 ■ B1セルに =keisan と入力すれば、計算結果 -140となります。 =IF(A1="","",keisan) とすれば、A1が空白でもエラーにはなりません。 結果を 100にしたければ A1は (10+20+30-40)×10÷2 のように( )を使ってください。 >頭からでも通常の数学的の場合も条件を指定できればありがたいです。 ↑の意味がよくわかりませんでした... A2セル以下にも文字列の式を入力する場合は、B1の式を下にオートフィルでコピーします。  ◇ なお、この方法は 4.0マクロ関数を使ったものです。 VBAでユーザー定義関数をつくってもできるでしょうが、いずれにしても一般機能ではムリだと思います。

sonans
質問者

お礼

ご回答ありがとうございました。一度やってみます。

全文を見る
すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

答えを出すセルを選択して、メニューの「挿入」、「名前」、「定義」 名前(W)に ev (好きな名前でかまいません) 式が文字ではいっているセルがB1だったら、参照範囲(R)に =EVALUATE(B1) として、 答えのセルに =ev ただし、×は*、÷は/であらわしてくださいね。

sonans
質問者

お礼

ありがとうございました。

sonans
質問者

補足

ご回答ありがとうございました。エクセル(コンピュータ)を一切分からない方が部下に対して自分で書いた手書きの表を手渡して「この通りにエクセルで作ってくれ」という指示をされ、手書きの表の表現通りに式をセルに転記し電卓で計算をして答えを式の隣のセルに書き写しているんだそうです。当然、×÷は*/ではだめで=は式の右側でないと怒られるんだそうです。

全文を見る
すると、全ての回答が全文表示されます。
  • fukkyse
  • ベストアンサー率32% (130/402)
回答No.4

質問者様の求めている表現とは少し違ったイメージになってしまいますが。 数式用Sheetと表示用Sheetの二つのSheetを準備します。 数式用Sheetは、ツール→オプション→表示→数式にチェックを入れます。 セル(仮にA1)に=10+20+30-40*10/2を入力。コピーして表示用SheetのA1に、シフトキーを押しながら「編集」→図のリンク貼り付け。B1に「=数式!A1」で計算結果。数式の入力、修正は数式用Sheetにて。 10+20+30-40×10÷2 と言う表現方法はチョット難しいので…。

sonans
質問者

お礼

ありがとうございました。

sonans
質問者

補足

ご回答ありがとうございました。エクセル(コンピュータ)を一切分からない方が部下に対して自分で書いた手書きの表を手渡して「この通りにエクセルで作ってくれ」という指示をされ、手書きの表の表現通りに式をセルに転記し電卓で計算をして答えを式の隣のセルに書き写しているんだそうです。当然、×÷は*/ではだめで=は式の右側でないと怒られるんだそうです。

全文を見る
すると、全ての回答が全文表示されます。
noname#22222
noname#22222
回答No.3

ちょっとでと思ったのですが、私の力では...面倒でした。 しゃーないので計算機を起動して式を送って答えを取得する方法を示しておきます。 B1=Keisan(A1) とやれば式の結果がB1に表示する関数のヒント! Private Sub CommandButton1_Click()   Dim ReturnValue, I   ReturnValue = Shell("calc.exe", 1)   AppActivate ReturnValue   For I = 1 To 2     SendKeys I & "{+}", True   Next I   SendKeys "=", True   SendKeys "%({E})", True   SendKeys "+({C})", True   SendKeys "%{F4}", True End Sub これで、クリップボードに答えが返されます。 *式を送出するように改造! *クリップボードを表示するようにコードを追加!

sonans
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • AppleRin
  • ベストアンサー率40% (22/54)
回答No.2

計算式に関しては hirumin さんにお任せします 多分 結果を別のセルに出したいということだと思いますが 一番簡単なのは  式の入ったセル番地が A1 であったとすれば 当然式は =10+20+30-40*10/2 と入力しますね 答えの出てほしいセルに =A1 と入れれば可能です 質問の意味を取り違えていたならすみません

sonans
質問者

お礼

ありがとうございました。

sonans
質問者

補足

ご回答ありがとうございました。エクセル(コンピュータ)を一切分からない方が部下に対して自分で書いた手書きの表を手渡して「この通りにエクセルで作ってくれ」という指示をされ、手書きの表の表現通りに式をセルに転記し電卓で計算をして答えを式の隣のセルに書き写しているんだそうです。当然、×÷は*/ではだめで=は式の右側でないと怒られるんだそうです。

全文を見る
すると、全ての回答が全文表示されます。
  • hirumin
  • ベストアンサー率29% (705/2376)
回答No.1

> 10+20+30-40×10÷2 > 別のセルに100と答えが出ないでしょうか? 普通に計算すれば答えは-140ですよね。 (10+20+30)-(40×10÷2)となりますから。 それとも頭から順番に計算していきたいのでしょうか? {(10+20+30-40)×10}÷2

sonans
質問者

お礼

ありがとうございました。

sonans
質問者

補足

ご回答ありがとうございます。ごめんなさい、説明が不十分でした。頭からでも通常の数学的の場合も条件を指定できればありがたいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 数式を残したまま、別のセルに答えを表示する

    数式を残したまま、別のセルに答えを表示する方法。例えばセルAに 5.20*5.00-1.2*2.0と入力し、セルBに答えを表示する方法を教えていただけないでしょうか。宜しくお願いします。

  • エクセルで一つのセルに式入力し、隣のセルに結果を

    エクセルで一つのセルに式入力し、隣のセルに結果を返す入力方法で一番簡単な方法があれば教えてください。たとえば一つのセルに3.1×2.5または3.1*2.5入力し答えを返す方法です。できれば(6.80+5.90)×2.60と入力し隣のセルに答えを返してくれるよう加減乗除できるようにしたいのです。うまく言えないのですがよろしくお願いします。

  • エクセルで一つのセルに文字と式を埋めたい。

    一つのセルに例えば予め「行き先:   」と入れておいて、結果を「行き先:東京」と表示させてあるシートが手元にあります。 他のセルにコード番号などを入れて、その回答を別のセルから引っ張ってきた答えを表示させる式は理解できたのですが、上にあるようにするには一体どうやってやるのでしょうか? 同じ式を入れても答えしか表示されません。

  • 一つのセルの文字列を分解して別のシートへ

    いつもお世話になっております。 一つのセルの文字列を分解して別のシートの指定したセルに一文字ずつ入力したいと考えています。 (例)   A B C  D E       F ・・・・・・・・・・・    AD 1 2014/5/1 ・・・・   2014/5/6・・・・・・・・・・・2014/5/31 2 3               こ 4 5               ど 6 7               も 8                                 9               の 別シートには、祝日の一覧が作成してあり、一つのセル"こどもの日"のように入力してあります。 F1のセルが2014/5/6なので、別シートの祝日データからデータをとばして、F3のセルに"こ"、一つ飛ばしてF5のセルに"ど"、F6のセルに"も"のように自動で入力したいのですが(他の祝日も同じく)、そういったことはマクロで可能でしょうか? よろしくお願いいたします。

  • 上付き文字を別セルにそのまま表示させたいのです

    上付き文字を入力したあと、別のセルにそのまま反映させたい場合どうしたらよいのでしょうか。 例 A1のセルに10の2乗を記入 A3のセルに「=A1」と入れると「102」となってしまいます。 どうしたらそのままに表示されるのでしょうか。

  • 配列数式の答を計算式入力セルに出す方法は?

     FREQUENCYなど配列数式の答は、式入力セルを選択した状態でF2を押した後F9を押すと数式バーに表示されますが、他の計算式のように式を入力したセルに直接答を出す方法はないのでしょうか。  答もまた配列で返され、場合によっては無数に続くからでしょうか、それとも私のやり方が間違っているのでしょうか、式入力セルには必ず「0」が返されてしまいます。  ご存知の方お教えください。

  • 一つのセルに計算式を入れて別のセルに答えを出したい

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

  • 2*3 という文字列から 6 を出す

    オフィス系ソフトの超初心者です。 使っているのはLibre Office(Open Office系)です。 表の編集作業中です。 やりたいことはすごく簡単なことのように思っていたのですが、できません。 2*3 と入力されている隣のセルに、答えの6が出てほしい。それだけのことなのですが。 =2*3 と、既に入力されている文字列の前に"="を入れEnterキーを押せば答えは出るのですが、対象のセルは300個近くあり手作業で一つ一つやる気にはなれません。 既に入力されている文字列から、答えを出す方法を教えてください。 Excelには下記のような方法があるようですが、Libreでのやり方がわかりませんでした。 "セルに入力した数式を別のセルで計算する" http://officetanaka.net/excel/function/tips/tips57.htm

  • 計算式を別のセルで文字列として自動的に表示させたい

    計算式を別のセルで文字列として自動的に表示させたいのですが、 例えば、A1セルで =2*3*2 と入力すると自動的に B1セルで 2*3*2 と表示される方法はありますか? よろしくお願いします。

  • エクセル 式が入っているセルから文字を取り出したい

    たとえば セルA1に =B10/1000  という式があるときに、 A1セルの = を取り除いた文字を B1に取り出したいのですが、やり方を教えてください。 B1には B10/1000  という文字が入るようにしたいのです。

このQ&Aのポイント
  • GoogleChromeでの音声再生に問題があります。他のブラウザやメディアプレイヤーアプリでは正常に再生されていますが、Chromeでは音声が再生されず、アプリの表示自体が消えます。
  • 試した対処法として、タブの音声のミュートやミュート解除、URL欄の音声許可の確認、音量ミキサーのアプリケーションミュートの確認などを行いましたが、問題は解決していません。
  • 最終手段としてOSの再インストールが考えられますが、できれば避けたいと思っています。他に解決法をご存じの方、お教えいただけませんか?
回答を見る

専門家に質問してみよう