[[20140902101310]] 『記入した計算式をそのまま計算してくれる関数また』(無知) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『記入した計算式をそのまま計算してくれる関数またはマクロは可能ですか?』(無知)

V1=3.6× 2.68×0.8 +3.6×0.74×0.65−3.45×1.7×0.65−1.55×0.83×0.65=?
上記、体積の和を求める場合
※計算過程を残すことが条件です。
※台形、円、三角形も含みます。
※それぞれセルごとに記入した計算式を計算してくれる関数またはマクロの方法はありますか?
もしあるようであれば教えて下さい。
宜しくお願いします。

< 使用 Excel:Excel2007、使用 OS:WindowsXP >


『計算過程を残す』とはどのようなことをイメージしていますか。

V1= 3.6× 2.68×0.8 +3.6×0.74×0.65−3.45×1.7×0.65−1.55×0.83×0.65
 = 7.7184 + 1.7316 - 3.81225 + 0.836225

  = 4.801525 

というように、計算式の乗除の項の計算結果を表示させ、さらに加減の項の計算結果を表示させることですか。

これに似たことといえば、『数式の検証』(数式タブから「数式の検証」)により、数式の計算過程を
確認することはできますが、これとは別のことをイメージしてますでしょうか。

(ryopo^2) 2014/09/02(火) 10:35


それぞれV1はA1セル、=はB1セル、3.6はC1セル、×はD1セルというような表記の方法です。

(無知) 2014/09/02(火) 10:41


こういうことですか

1.A1セルに計算式を入力する(文字列として扱う)
2.A1セルの文字列を、数字、演算記号単位で分解する
3.分解した個々の文字列を他のセルに入力する(たとえばA2には3.6、B2には"×"、C2には2.68・・・W2には0.65)

もし途中までの過程が上記であっているとして、次はどうすればいいのですか。
表示させたい表のイメージを示してください。

数式の項の数がランダム(不定)ならばVBAで対応、固定(一定)ならば関数でも対応できそうだけど。

(ryopo^2) 2014/09/02(火) 11:02


やはり文字列で式を表記したほうが簡単でしょうか?
小学生でもわかるような計算式を残したいです。
※CAD図面の寸法データーを貼り付け
※計算式を表記
※計算の答え
という風にしたかったです。
V1=3.6*2.68*0.8+3.6*0.74*0.65-3.45*1.7*0.65-1.55*0.83*0.65-1.55*0.83*0.65-1.55*0.74*0.5-1.55*0.74*0.5
これだとわかりにくいので。
(無知) 2014/09/02(火) 11:08

個々の数値が図形のどこを指しているのか(幅なのか奥行なのかあるいは高さなのか)、
またそもそもはどんな図形の体積を求めようとしているのかの説明があったほうが
ベターな気がします。

体積の公式くらいは何となく覚えていても、数式だけから対象となる図形を頭の中で
組み立てるのは、(文系/理系問わず)人によってしんどいかも、です。
対象となる図形についてすべての人の共通認識になっている場合は別として。

なんかエクセルについての相談から離れてしまってすみません。

(ryopo^2) 2014/09/02(火) 11:46


 『算数の計算問題』(ムーミンぱぱ)
[[20131118224701]] 

 ほい。
 
(GobGob) 2014/09/02(火) 12:46

関数を自作して実現する例。
標準モジュールに、以下を貼り付けておきます。

 Public Function fCalc(R As Range) As Double
    Dim cw As String
    Dim i As Long

    For i = 1 To R.Count
        cw = cw & R(i).Text
    Next i

    cw = Replace(cw, "×", "*")
    cw = Replace(cw, "÷", "/")
    cw = Replace(cw, "+", "+")
    cw = Replace(cw, "−", "-")

    fCalc = Application.Evaluate(cw)
End Function

次に、式がA1セルからW1セルにばらばらに入力されているとして、例えばZ1セルに
「=fCalc(A1:W1)」のように、自作関数を呼び出す式を書いてみてください。
(訂正して、コードを簡潔にしました)
(???) 2014/09/02(火) 12:59


すいません。質問内容間違えてました。
計算式が3行にまたがっている長い計算の場合はどうすのでしょうか?
通常の
FCALC(A1;G1,A3;G3,A6;,G6)
だと♯NAMEで駄目です。

宜しくお願いします。
(無知) 2014/09/02(火) 14:05


=fcalc(J6:AF6)+fcalc(J8:AG8)+fcalc(J10:AG10)+fcalc(J12:U12)
できましたが、もっとスマートにはならないんでしょうか?

だけどすごい進歩です、

有難うございました。

本当に助かりました。
(無知) 2014/09/02(火) 14:13


       W     B  H
V2=(2.63213+1.8037)/2×2 ×0.8
       W     B  H
 −(2.57 +1.86584 )/2×1.7 ×0.65
台形の体積も
=fcalc(J6:AF6)+fcalc(J8:AG8)
で出来ました。
円はどうでしょうか(π×D^2)/4

(無知) 2014/09/02(火) 14:20


複数行も連結する場合、「=fCalc(A1:G6)」のように範囲指定してください。

 Public Function fCalc(R As Range) As Double
    Dim cw As String
    Dim i As Long

    For i = 1 To R.Count
        cw = cw & R(i).Text
    Next i

    cw = Replace(cw, "×", "*")
    cw = Replace(cw, "÷", "/")
    cw = Replace(cw, "+", "+")
    cw = Replace(cw, "−", "-")
    cw = Replace(cw, "π", "3.14")
    cw = StrConv(cw, vbNarrow)

    fCalc = Application.Evaluate(cw)
End Function
(???) 2014/09/02(火) 15:37

お礼が遅くなりましたが、大変助かりました。
また質問させていただきます。

更にExcel VBAの知識を身に付けたいと考えています。
本当に、有り難うございまいました。
(無知) 2014/09/03(水) 09:28


http://www.excel.studio-kazu.jp/kw/20081012185737.html
 これ思い出しました
 πはありませんでしたが・・・
(稲葉) 2014/09/03(水) 09:55

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.