[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『【至急!!】累乗計算』(みい)
助けて下さい!
下記Ⓐの式をexcelで入力するにはどうしたら良いでしょうか?
Ⓐ0.04×(1+0.04)^30/(1+0.04)^30-1
=0.0578・・・答え
セルに「0.0578」と答えが入るようにⒶを入力したいです。 自分なりに調べたら「power関数」を使うようですが・・ これ以上分かりません。 excelかなり初心者です・・アホな質問をしているとは思いますが 宜しくお願いします。
括弧が抜けているのかな =0.04*(1+0.04)^30/((1+0.04)^30-1)
衝突したけど名前も書かない人は無視して。
そもそも答えを「0.0578」とするのには 0.04×(1+0.04)^30/((1+0.04)^30-1) にしないとだめでは?
また、べき乗は関数だとたしかにPOWER関数ですが演算子では「^」でOKです。 あとは乗算(×)には「*」を使って下さい。
出来ました! こんなに早くお返事頂けるとは・・感動です! 今回はPOWER関数ではなかったのですね。 助かりました!本当にありがとうございました!!
名前も書かない人は無視して。
解決済みですが、こんな関数もありまっせぇ。
0.04×(1+0.04)^30/((1+0.04)^30-1)
とか上付き文字のべき乗とか、√で書かれた式も計算されます。
=txtcalc(A1)等と入力します。
(弥太郎)
'--------------
Function txtcalc(adrs As Range) As Double
Dim data As String, d_1 As String, Cnt As Integer
Dim i As Integer, flag As Boolean, mch, d_2 As String
data = Replace(Replace(Replace(Replace(Replace(Replace(StrConv(adrs, vbNarrow), "÷", "/"), _
"×", "*"), "{", "("), "}", ")"), "[", "("), "]", ")")
If data = "" Then txtcalc = 0: Exit Function
With CreateObject("vbscript.regexp")
.Global = True
If adrs Like "*" & adrs.Font.Superscript & "*" Then
Do While i < Len(adrs)
i = i + 1
If adrs.Characters(i, 1).Font.Superscript Then
d_1 = d_1 & "^"
If adrs.Characters(i + 1, 1).Font.Superscript Then flag = True
End If
If flag Then
d_1 = d_1 & Mid$(data, i, 2)
i = i + 1
flag = False
Else
d_1 = d_1 & Mid$(data, i, 1)
End If
Loop
data = d_1
d_1 = ""
End If
data = Replace(data, "√", "Sqr")
.Pattern = "\d+\("
If .test(data) Then data = Replace(data, "(", "*(")
.Pattern = "\)\d"
If .test(data) Then data = Replace(data, ")", ")*")
.Pattern = "\)\("
If .test(data) Then data = Replace(data, ")(", ")*(")
.Pattern = "(\+|\-|\/)(\*)"
If .test(data) Then data = .Replace(data, "$1")
.Pattern = "(\*)(\+|\-|\/|\))"
If .test(data) Then data = .Replace(data, "$2")
If data Like "*Sqr*" Then
.Pattern = "(\d+|\))Sqr"
If .test(data) Then
For Each mch In .Execute(data)
data = Replace(data, mch, Split(mch, "S")(0) & "*" & "Sqr")
Next
End If
.Pattern = "Sqr\d+"
If .test(data) Then
For Each mch In .Execute(data)
data = Replace(data, mch, Sqr(Split(mch, "r")(1)))
Next
End If
.Pattern = "Sqr\("
If .test(data) Then
d_2 = data
For Each mch In .Execute(data)
Cnt = 1
For i = mch.firstindex + 5 To Len(d_2)
If Mid(d_2, i, 1) = "(" Then
Cnt = Cnt + 1
ElseIf Mid(d_2, i, 1) = ")" Then
Cnt = Cnt - 1
If Cnt = 0 Then Exit For
End If
d_1 = d_1 & Mid(d_2, i, 1)
Next i
data = Replace(data, "Sqr(" & d_1 & ")", Sqr(Evaluate(d_1)))
d_1 = ""
Next
End If
End If
.Pattern = "\D"
If .test(data) Then
For Each mch In .Execute(data)
.Pattern = "(\*|\/|\+|-|\)|\(|\.|\^|%)"
If Not .test(mch) Then
data = Replace(data, mch, "")
End If
Next mch
.Pattern = "^\*|\*$"
If .test(data) Then data = .Replace(data, "")
txtcalc = Evaluate(data)
Else
txtcalc = data
End If
End With
End Function
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.