• ベストアンサー

エクセル2007で計算内容と答えを表示するには?

エクセル2007を使用しています 計算式を表示する方法は他のHPなどに書いてありました 計算内容を表示する方法は書かれておりませんでした 例えば 190+25+25=240 このように1つのセルで190+25+25= もう1つのセルで240と表示したいのです なぜ1つなのかと言いますと今回例に挙げたのは3つの足し算ですが 4つの場合や9つの場合などマチマチで A1 190 A2 + A3 25 A4 + A5 25 A6 = A7 =A1+A3+A5 240と表示 この方法でもいいのですが かけ算や割り算があったりと なかなか同じ書式では無理なのです

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.10

>他に方法があるなら是非教えて下さい。 私の書いた内容で誤解されてしまったようですが、あくまでも、ご質問者さんが、ご希望・ご要望されている内容について、修正し、ご提供する可能性はあるのですが、こちらからあえて、発案したものを、これはどうですかというようには、残念ながら出来ません。それは、掲示板の質疑・回答の範囲を越えてしまうからです。 もし、現在の段階で、何か、ご不満がありましたら、ご指摘くださるようにしてください。

その他の回答 (9)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.9

お手間を取らせて、大変申し訳ありません。 'End Functionr '←何か、間違ったキーが混じったようです。rが余分です。 End Function '←正しくは、こうなります。   >↑ここまでです 何か、ここ数日、アップロードする時に、サイト側で、システムエラーを繰り返して、こちらのアップロードの確認がおろそかになってしまいました。

sizainet
質問者

補足

ありがとうございます。 できました!!少し感動しています 他に方法があるなら是非教えて下さい。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.8

#7の補足を読みました。まだ、諦めていないようですね。 もし、他のモジュールに貼りつけたコードがありましたら、一旦、すべて削除してください。 決まったコードの登録方法があります。 Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。 次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、 #7で書いた、 Public Function GetReturn(argument.... End Function のコードを貼り付けます。 もし、どのブックでも使えるようにするなら、アドインにするか、個人用マクロブックの「標準モジュール」に貼りつけて使わなくてはなりません。(安易に考える人も多いようですが、これは、また難しい問題が関わってきます。) なお、もし、ユーザー定義関数がうまく行くようでしたら、必要に応じて、他のご要望にもお答えできるかと思います。ここで成功することがまず第一歩だと思います。つまずく人は、だいたいは、ここでつまずきます。

sizainet
質問者

補足

早速ありがとうございます。 Visual Basic Editor画面の標準モジュール部分に教えて頂いた 内容をコピペしたのですが一行目の Public Function GetReturn(argument As Variant, Optional opt As Boolean, Optional k As Variant) この部分だけ背景が黄色くなり コンパイルエラー 構文エラー と表示されます A1に9×3= B1に= GetReturn(A1) 入力 ↓下記がコピペした内容です Public Function GetReturn(argument As Variant, Optional opt As Boolean, Optional k As Variant) 'GetReturn(数式,[数式付表示],[桁区切り]) Dim f As String, o As String, f1 As String Dim ret As Variant Dim wFlg As Integer If TypeName(argument) = "Range" Then If argument.HasFormula Then f = argument.FormulaLocal ElseIf VarType(argument) = vbString Then f = argument.Text Else GetReturn = "" End If ElseIf VarType(argument) = vbString Then f = argument Else GetReturn = "" End If f = Replace(f, "=", "", , , 1) f1 = f f = StrConv(f, vbNarrow) o = f If Left(o, 1) = Left(f1, 1) Then wFlg = 8 Else wFlg = 4 f = Replace(f, "×", "*", , , 1) f = Replace(f, "÷", "/", , , 1) ret = Evaluate(f) 'エラーチェック If IsError(ret) Then ret = argument.Text If ret = f1 Then GetReturn = f1: Exit Function If IsMissing(k) = False Then ret = WorksheetFunction.Fixed(ret, Val(k), False) End If If IsError(ret) Then GetReturn = "" If opt Then ret = StrConv(f1 & " = " & ret, wFlg) GetReturn = Replace(ret, Space(1), Space(1), , , 1) Else GetReturn = StrConv(ret, wFlg) End If End Functionr ↑ここまでです よろしければ教えて下さい。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.7

質問者さんが、そのままにしているようですが、どうやら、これは、Excelの発想とはまったく違う種類のもののようです。質問が正しく伝わっていません。だから、こちらで、勝手に解釈して、回答を考えてみました。 >=A1+B1+C1と表示するのではなく >190+25+25と表示させたいのです こういう表現が混乱させたものだと思います。ここらは、別の意味に取ることにしました。つまり、=A1+B1+C1 ということはしない、というように解釈しました。 課題: *** A1+B1+C1というアドレス数式は使用しない。(逆のコードはなかなか難しい) =の表示は、右にある場合、左ある場合も両方ある。 表示されている計算式から、数値(答え)を表示したい。 セル上に置かれている位置は指定しないから、レイアウト自体は関係がない。 190 + 25 + 25 =「  」 隣のセルに入れる、数式と答えを表示の、どちらもある。 演算子は、+、-、×、÷ という表示形式、計算式に使う +,-,*,/ の両方がある。 以下のように汎用性を持たせました。 *** =GetReturn(数式,[数式付表示],[桁区切り]) 「=」はどちらでもよい 9×3=  = GetReturn(A1) ....表示: 27 (全角で数式を入れると、全角表示する) 8*9+3   = GetReturn(A2,TRUE) 表示: 8*9 + 3 = 100 (数式表示する) 8×6×3×12 =GetReturn(A3,FALSE, -2)...表示:1,700  (桁を丸める) '=11/3    =GetReturn(A4,1, 3)... 表示 11/3 = 3.667  (小数点表示桁) 12÷3=   =GetRetrun(A5,1)....表示 12÷3 = 4 =12+15*3(数式) =GetReturn(A6,1) ...表示 12+15*3 = 57 ="a"/1  =GetReturn(A7,1)....表示 "a"/1 = #VALUE! * =A1+B1 スタイルは、以下のユーザー定義関数では出来ません。 '//標準モジュール登録 Public Function GetReturn(argument As Variant, Optional opt As Boolean, Optional k As Variant) 'GetReturn(数式,[数式付表示],[桁区切り]) Dim f As String, o As String, f1 As String Dim ret As Variant Dim wFlg As Integer If TypeName(argument) = "Range" Then  If argument.HasFormula Then   f = argument.FormulaLocal  ElseIf VarType(argument) = vbString Then   f = argument.Text  Else   GetReturn = ""  End If ElseIf VarType(argument) = vbString Then  f = argument Else  GetReturn = "" End If f = Replace(f, "=", "", , , 1) f1 = f f = StrConv(f, vbNarrow) o = f If Left(o, 1) = Left(f1, 1) Then wFlg = 8 Else wFlg = 4 f = Replace(f, "×", "*", , , 1) f = Replace(f, "÷", "/", , , 1) ret = Evaluate(f) 'エラーチェック If IsError(ret) Then ret = argument.Text If ret = f1 Then GetReturn = f1: Exit Function If IsMissing(k) = False Then  ret = WorksheetFunction.Fixed(ret, Val(k), False) End If If IsError(ret) Then GetReturn = "" If opt Then  ret = StrConv(f1 & " = " & ret, wFlg)  GetReturn = Replace(ret, Space(1), Space(1), , , 1) Else  GetReturn = StrConv(ret, wFlg) End If End Functionr

sizainet
質問者

補足

コチラの思いをくみ取って頂きありがとうございます。 質問の仕方が曖昧で申し訳ございません A1に9×3= B1に= GetReturn(A1) と入力したのですが#NAME?と表示されます A2に8*9+3 B2に= GetReturn(A2,TRUE) と入力しても#NAME?と表示されます なぜなのでしょうか?

  • shorun
  • ベストアンサー率42% (133/310)
回答No.6

例えば計算問題 10+20+30= と答え 60 を別々のセルに表示するなら 添付図のように赤ペンで囲った式を入力すれば、表示できます。 ただし、A1,B1,C1のデータ入力なしで、D1に10+20+30=と表示させることはできません。 A1,B1,C1の各データが見かけ上邪魔なら データと式を全部入力してからABC列を非表示に設定する。 D1セルの式を左から順番に説明します。 (1) = は式の始めに必ず書く記号 (2) VALUE(A1) はセルA1の値(ここでは10)を返す式 (3) & は(2)と(3)を接続させる記号 (4) "+" は +記号をダブルコーテーションで囲って文字の+にする約束 (5) (3)参照 (6) VALUE(B1) はセルB1の値(ここでは20)を返す式 (7) (3)参照 (8) (4)参照 (9) VALUE(C1) はセルC1の値(ここでは30)を返す式 (10) (3)参照 (11) "=" は =記号をダブルコーテーションで囲って文字の=にする約束  E1セルの式(説明省略) 以上でマクロを使わず初歩的な関数で質問冒頭の「1つのセルで190+25+25= もう1つのセルで240と表示したい」のパターンは解決しますが 質問後半「4つの場合や9つの場合などマチマチで、かけ算や割り算があったりと なかなか同じ書式では無理なのです」まで読むと、IF関数を組み合わせれば不可能ではないかも知れませんが、複雑すぎるので私はここでパスします。 この先は、1行目で「計算問題 10+20+30=」と書きましたが どのような「計算問題」のパターンがあるのか補足に明記されて、マクロ関数の達人からの良い回答をおまちください。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

#4まできても、回答者の回答で満足していないようですが、何かお困りのことがあって質問されていると思うのです。(以下、括弧はヒント) 当初、 >190+25+25=240 >このように1つのセルで190+25+25= もう1つのセルで240と表示したいのです >元の質問に、A7 =A1+A3+A5 240と表示 >この方法でもいいのですが  (Formula を利用する) これを書いてしまったら、ミスリードするのは当然ですね。 #3さんの回答で正解だと思いましたので、アップしなかったのですが、最初から、自分の中できちんとまとめていたら、何日も質問は掛からなかったと思います。 #3の補足 >=A1+B1+C1と表示するのではなく >190+25+25と表示させたいのです (特殊) #4の補足 1つのセルに >190+25+25や1+2+3+4+5+6+7+8+9 >と入力して隣のセルか任意のセルに答えを表示できないのでしょうか? (Evaluateを利用する) その都度、質問の内容が変わっているようですが、質問として何をしたいのか、話をまとめてくださいませんか?もともと、何をするためにしているのですか?レイアウトさえ決まっていないようです。 最初から読んでみると、どう答えてよいのか分からなくなると思います。

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.4

・一つのセルに[190+25+25]と入力するとそのまま表示されます ・これの右端に = を追加して[190+25+25=]これもOKですね ・これの左端に = を追加して[=190+25+25]は計算結果の240 が表示されます 左端に = を表示するにはシングルコーテーションに続いて['=190+25+25]と入力します '表示されませんのでご希望通りかと

sizainet
質問者

補足

ありがとうございます。 1つのセルに 190+25+25や1+2+3+4+5+6+7+8+9 と入力して隣のセルか任意のセルに答えを表示できないのでしょうか?

回答No.3

「Alt」+「F11」でVBAを起動して「挿入」タブから「標準モジュール」を選択し、ユーザー定義関数を入力します ___________________________________________________________ Function 数式(rng As range) As String   数式 = rng.Formula End Function ___________________________________________________________ 添付画像を元に説明していきますが、数式を入力するセルはこの場合【E2】~【E5】としておき、【D2】に「=数式(E2)」と入力します 後は【D2】の式を【D5】までコピーします 一応画像を添付しておきましたが、こんな感じでよろしいでしょうか?

sizainet
質問者

補足

早速ありがとうございます。 添付画像の数式D2~D5を =A1+B1+C1と表示するのではなく 190+25+25と表示させたいのです そもそも可能なのでしょうか? 分かる範囲で結構です教えて下さい。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! VBAの方法になってしまいますが・・・ 掛け算の場合は「*」(アスタリクス)を入力・割り算の場合は「/」(スラッシュ)を入力になります。 A1セルから数行にデータがあり、「=」(イコール)の下の行に計算式を・その下の行に計算結果を表示するようにしてみました。 画面の左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 マクロ実行方法は Alt+F8キー → マクロ → 実行です。 Sub test() 'この行から Dim i As Long Dim str, buf As String i = 1 Do While Cells(i, 1) <> "=" str = Cells(i, 1) buf = buf & str i = i + 1 Loop Cells(Rows.Count, 1).End(xlUp).Offset(1) = buf & "=" Cells(Rows.Count, 1).End(xlUp).Offset(1) = "=" & buf Columns(1).AutoFit End Sub 'この行まで 以上、参考になれば良いのですが・・・m(__)m

noname#157224
noname#157224
回答No.1

一々手入力になって面倒かもしれませんが、 A1に、例えば 1+2-3×2÷4= と計算式を入力し、 答えを入力したいセルの数式バーに、 =1+2-3*2/4 と入れるしかないのではないでしょうか…。 あまり参考にならない答えで済みません; 参考URL http://www.becoolusers.com/excel/input-arithmetic.html

関連するQ&A

  • 見た事ない、Excel 計算式

    Excelの表計算のセルに次ぎの式が入っていました。引き算や掛け算のように見えます。答え(足し算、掛け算、割り算の数値)は、合っています) =[@         ]-[@      ] =([@         ]-[@         5])*[@       33] =([@        ]-[@        4])*[@       33] Excel 関数の代わりに使用しているようですが、これは何でしょうか?

  • エクセル関数?

    エクセルの質問をいたします。 A1セルに式2*2と入力します。(2*2の式はそそまま残す) A2セルにその答えの4を出す方法をおしえてください。 (掛算・割算・足算・引算全ての計算に有効となるよう) よろしくお願いします。

  • エクセル計算式とファイルサイズの関係

    エクセルで一つのデータベースに対して複数の計算式を実行する場合。 データベースのシート、計算式のシート、結果表示のシートが一つのブックにまとまっています。 このとき、計算式のシートに関して; (1) 各計算式毎にシートを分け、結果をchoose関数で選択表示する (2) 各計算式をchoose関数で選択できるようにし、一つのシートにまとめる (1)、(2)の方法でどちらがより再計算が早く、ファイルサイズが小さく収まるでしょうか? 具体的には、100個のデータに対して足し算を100通り、かけ算を100通り、割り算を100通り行って、各々の最大値や最小値サマリ表示するようなイメージです。 これを足し算計算100個のシート1・かけ算計算100個のシート2・割り算計算100個のシート3と3つのシート分けた場合と、一つのシートにchoose(足し算,かけ算,割り算)としてまとめた場合の比較ということです。 サマリは各計算式毎に確認するため、何れの方法を採っても支障はありません。 小生は(2)の方式を採っているのですが、計算式の長さが表示ウィンドウで4行表示になるほどの長さになっております。 その為か、再計算に時間がかかり、ファイルサイズも50MBを超えてしまって困っています。 データベース自体はさほど大きいものではなく、それに対して実行する計算式が多い為にそうなっているものではないかと推測しております。 どなたかおわかりであれば、アドバイスいただきたく、お願い申し上げます。

  • エクセル2000 マイナスの答えを0にしたい

    エクセル2000で計算の答えがマイナスになる場合 その答えを0にするって事は出来ますか? 掛け算でも足し算でも正数なら問題なし 例 1+1=2   1×1=1 1÷1=1  マイナスが付く場合は0にしたい 例 1-2=0  みたいな感じです 出来るならその方法を教えて下さい 出来ないなら無い・・・でいいです お願いします

  • 平方根の計算

    平方根の計算の入門編です。 平方根の掛け算はできるのになぜ足し算・引き算はできないのでしょうか。 √2×√3 = √6なのに √2+√3 = √5 になりません。 これまで、数字の計算は足し算引き算かけ算割り算で計算する、と習ってきました。 √がつくとかけ算割り算はできるのに足し算引き算ができません(やってはいけない)また、ルールということはわかりますが、どういうルールなのでしょうか。

  • エクセルでの分数計算について

    エクセルでの分数計算について質問です。 使用ソフトはエクセル2003です。 全てのセルの書式設定はユーザー定義で# ???????????????/???????????????とします。 例えば A1に 0 373/10000 B2に 0 37/500 C1に =A1+B2 と入力すると C1に1113/10000 と表示され、きちんと足し算ができますが、 A1に 0 373/100000 と入力すると C1にきちんと足し算の答えが出てきません。 A1の分母を一桁増やしたとたんできなくなってしまい困っています。 分母が億単位の分数の足し算がしたかったので、 解決方法がわかる方はぜひともご回答お願いいたします。

  • Excel計算の表示

    Excelの表示方法について セル A1、A2、A3があります。A4のセルにA1,A2,A3の合計の計算式を入れます。その時に、各セルに数字が入らないと計算しない方法はありませんか。(例:3+4+ブランク=表示なし ブランクに数字を入れると合計が出る)まとまっていませんが、よろしくお願いいたします。

  • 計算の順序 a×b÷c

    小学生の算数で, たし算,ひき算は,かけ算,わり算より先 たし算と,ひき算が,又は,かけ算,わり算が, 複数ある時は,普通,左からと習います。 しかし, たし算だけ, かけ算だけなら,どこからでも計算できます。 a×b÷c は,b÷cを先に計算することは,できますか? いくつか,問題を作って解いてみましたが, a×bを先に計算した時と,答えが同じになりました。 よろしくお願いします。

  • 四則計算

    四則計算(足し算、引き算、掛け算、割り算) 1・3・9・10で24にする方法を教えてください。

  • エクセル関数で0表示を消したい

    エクセルで0表示を消すには? エクセル2002を使っています。 例えば A1セルにて割り算をセットしRAUND関数を使い 書式設定では、数式を選び 少数点以下桁数は0表示を選択。 で、演算結果は良いのですが計算されない場合0が表示されます。 この0表示されない様にするには? どのような数式を追加すると良いのでしょうか? よろしくお願いいたします。

専門家に質問してみよう